当前位置:首页 > 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>

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

相关文章

vue实现导航条

vue实现导航条

Vue 实现导航条的方法 使用 Vue Router 实现基础导航 在 Vue 项目中安装 Vue Router 后,可以通过以下方式实现导航条: <template> <na…

css3制作3d导航条

css3制作3d导航条

CSS3 3D导航条制作方法 使用CSS3的3D变换和过渡效果可以创建具有立体感的导航条。以下是具体实现步骤: HTML结构 <nav class="nav-3d"> <ul…

css导航条制作

css导航条制作

水平导航条制作 使用display: inline-block或flexbox实现水平排列 .navbar { background-color: #333; overflow: hidde…

css导航条制作

css导航条制作

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

css制作导航条

css制作导航条

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

用css制作导航条

用css制作导航条

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