当前位置:首页 > VUE

vue3.0实现导航条

2026-03-27 06:11:43VUE

Vue 3.0 实现导航条的方法

使用 Vue Router 创建基础导航

安装 Vue Router 依赖:

npm install vue-router@4

src/router/index.js 中配置路由:

import { createRouter, createWebHistory } from 'vue-router'
import Home from '../views/Home.vue'
import About from '../views/About.vue'

const routes = [
  { path: '/', name: 'Home', component: Home },
  { path: '/about', name: 'About', component: About }
]

const router = createRouter({
  history: createWebHistory(),
  routes
})

export default router

创建导航组件

src/components/NavBar.vue 中:

<template>
  <nav>
    <router-link to="/">Home</router-link>
    <router-link to="/about">About</router-link>
  </nav>
</template>

<script>
export default {
  name: 'NavBar'
}
</script>

<style scoped>
nav {
  padding: 1rem;
  background: #f0f0f0;
}
router-link {
  margin-right: 1rem;
}
</style>

在主应用中注册使用

src/App.vue 中引入导航组件:

<template>
  <NavBar />
  <router-view />
</template>

<script>
import NavBar from './components/NavBar.vue'

export default {
  components: { NavBar }
}
</script>

响应式导航实现

添加响应式功能:

<template>
  <nav>
    <div class="menu-toggle" @click="toggleMenu">☰</div>
    <div class="nav-links" :class="{ active: isActive }">
      <router-link to="/">Home</router-link>
      <router-link to="/about">About</router-link>
    </div>
  </nav>
</template>

<script>
import { ref } from 'vue'
export default {
  setup() {
    const isActive = ref(false)
    const toggleMenu = () => {
      isActive.value = !isActive.value
    }
    return { isActive, toggleMenu }
  }
}
</script>

<style scoped>
.menu-toggle {
  display: none;
  cursor: pointer;
}
@media (max-width: 768px) {
  .menu-toggle { display: block; }
  .nav-links { display: none; }
  .nav-links.active { display: flex; flex-direction: column; }
}
</style>

添加导航守卫

在路由配置中添加导航守卫:

router.beforeEach((to, from, next) => {
  document.title = to.name || 'Vue App'
  next()
})

使用 Composition API 增强功能

添加当前路由高亮功能:

vue3.0实现导航条

<script>
import { computed } from 'vue'
import { useRoute } from 'vue-router'

export default {
  setup() {
    const route = useRoute()
    const isCurrentRoute = (path) => {
      return computed(() => route.path === path)
    }
    return { isCurrentRoute }
  }
}
</script>

<template>
  <router-link 
    to="/" 
    :class="{ active: isCurrentRoute('/') }"
  >Home</router-link>
</template>

标签: 导航条
分享给朋友:

相关文章

css导航条在线制作

css导航条在线制作

CSS导航条在线制作工具 使用在线工具可以快速生成CSS导航条,无需手动编写代码。以下是一些流行的在线工具: CSS Menu Maker 提供多种导航条样式,包括水平、垂直和下拉菜单。用户可自定义…

css制作导航条

css制作导航条

水平导航条制作 使用无序列表<ul>和<li>元素结合CSS浮动属性可以创建基础水平导航栏。关键CSS属性包括display: inline-block或float: left…

用css制作导航条

用css制作导航条

基础导航条结构 使用HTML创建导航条的基本结构,通常包含一个<nav>元素和多个<a>标签: <nav class="navbar"> <a href…

css3制作3d导航条

css3制作3d导航条

使用CSS3制作3D导航条 CSS3提供了强大的3D变换和过渡效果,可以轻松实现具有立体感的导航条。以下是实现3D导航条的几种方法: 基本3D效果 通过transform属性实现基础的3D翻转效果:…

css导航条制作

css导航条制作

CSS导航条制作方法 水平导航条 使用display: inline-block或flexbox实现水平导航条。设置背景色、内边距和悬停效果增强交互性。 <nav> <ul…

css制作导航条

css制作导航条

水平导航条 使用display: inline-block或flexbox实现水平导航条。设置背景色、间距和悬停效果增强交互性。 <nav class="horizontal-nav">…