当前位置:首页 > VUE

vue路由实现导航栏

2026-02-23 01:34:09VUE

实现导航栏的基本路由配置

在Vue项目中,使用vue-router实现导航栏功能需要先安装并配置路由。通过Vue CLI创建项目时可以选择包含vue-router,或者后续手动安装:

npm install vue-router

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组件,使用<router-link>实现导航跳转:

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

<style scoped>
nav {
  display: flex;
  gap: 1rem;
  padding: 1rem;
  background: #f0f0f0;
}
.router-link-active {
  font-weight: bold;
  color: #42b983;
}
</style>

在主应用中挂载路由和导航栏

src/App.vue中引入并使用导航栏组件:

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

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

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

动态高亮当前路由链接

可以通过active-class属性自定义激活状态的类名,或使用exact-active-class精确匹配:

<router-link 
  to="/about" 
  active-class="active-link"
  exact-active-class="exact-active-link">
  About
</router-link>

编程式导航实现

除了<router-link>,也可以通过JavaScript实现导航跳转:

methods: {
  goToAbout() {
    this.$router.push('/about')
    // 或使用命名路由
    // this.$router.push({ name: 'About' })
  }
}

嵌套路由实现多级导航

对于复杂布局,可以配置嵌套路由:

const routes = [
  {
    path: '/user',
    component: UserLayout,
    children: [
      {
        path: 'profile',
        component: UserProfile
      },
      {
        path: 'settings',
        component: UserSettings
      }
    ]
  }
]

导航守卫控制访问权限

使用路由守卫实现权限控制:

router.beforeEach((to, from, next) => {
  if (to.meta.requiresAuth && !isAuthenticated()) {
    next('/login')
  } else {
    next()
  }
})

响应式路由参数

在组件中访问动态路由参数:

vue路由实现导航栏

export default {
  computed: {
    userId() {
      return this.$route.params.id
    }
  },
  watch: {
    $route(to, from) {
      // 对路由变化作出响应
    }
  }
}

标签: 路由vue
分享给朋友:

相关文章

vue实现批量

vue实现批量

Vue 实现批量操作的方法 在 Vue 中实现批量操作通常涉及选择多个项目并执行统一处理,例如批量删除、批量更新等。以下是几种常见实现方式: 表格多选批量操作 使用 el-table 配合复选框实现…

vue实现换行

vue实现换行

Vue 中实现换行的几种方法 在 Vue 中实现换行可以通过多种方式,具体取决于使用场景和需求。以下是常见的几种方法: 使用 HTML 的 <br> 标签 在模板中直接使用 <br…

vue实现抖动

vue实现抖动

Vue 实现抖动效果 在 Vue 中实现抖动效果可以通过 CSS 动画或 JavaScript 动画库来实现。以下是几种常见的方法: 使用 CSS 动画 通过定义 @keyframes 动画并在 V…

vue实现双向

vue实现双向

Vue 实现双向绑定的方法 Vue 的双向绑定主要通过 v-model 指令实现,它结合了数据绑定和事件监听,适用于表单元素(如 input、select、textarea 等)。以下是几种常见的实现…

vue 实现 confirm

vue 实现 confirm

实现确认对话框的方法 在Vue中实现确认对话框可以通过多种方式完成,包括使用内置组件、第三方库或自定义组件。 使用浏览器原生confirm 最简单的实现方式是直接调用浏览器原生的confirm方法。…

mvvm实现vue

mvvm实现vue

MVVM 模式在 Vue 中的实现 MVVM(Model-View-ViewModel)是一种前端架构模式,Vue 的设计灵感来源于此。以下是 MVVM 在 Vue 中的核心实现方式: 数据绑定(M…