当前位置:首页 > VUE

vue实现导航切换

2026-01-19 15:18:19VUE

路由配置

在Vue项目中安装vue-router,并配置路由表。每个路由对应一个组件,用于展示不同导航页面的内容。

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

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

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

export default router

导航组件

使用<router-link>组件创建导航菜单,通过to属性指定目标路由路径。active-class可自定义激活状态的样式类名。

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

<style scoped>
.active {
  font-weight: bold;
  color: #42b983;
}
</style>

路由视图

在父组件中添加<router-view>标签作为路由内容的出口,匹配到的组件会在此渲染。

<template>
  <div id="app">
    <NavBar />
    <router-view />
  </div>
</template>

编程式导航

通过useRouter钩子获取路由实例,调用pushreplace方法实现编程式跳转。

import { useRouter } from 'vue-router'

const router = useRouter()
function goToAbout() {
  router.push('/about')
}

嵌套路由

配置子路由实现多级导航,父路由组件中需包含嵌套的<router-view>

vue实现导航切换

const routes = [
  {
    path: '/user',
    component: User,
    children: [
      { path: 'profile', component: Profile },
      { path: 'posts', component: Posts }
    ]
  }
]

标签: vue
分享给朋友:

相关文章

vue实现triger

vue实现triger

在Vue中实现触发器(trigger)功能通常涉及自定义事件或DOM事件触发。以下是几种常见场景的实现方法: 自定义事件触发 通过$emit方法触发父组件中监听的自定义事件: // 子组件 thi…

vue实现handsontable

vue实现handsontable

Vue 中实现 Handsontable 要在 Vue 项目中集成 Handsontable,可以使用官方提供的 @handsontable/vue 封装库。以下是一个完整的实现步骤。 安装依赖 确…

vue vnode实现

vue vnode实现

Vue VNode 实现原理 VNode(Virtual Node)是 Vue 的核心概念之一,用于描述真实 DOM 的轻量级虚拟表示。VNode 的实现涉及以下关键点: VNode 的基本结构 V…

vue轮询实现

vue轮询实现

Vue 轮询实现方法 在 Vue 中实现轮询可以通过以下几种方式: 使用 setInterval data() { return { pollInterval: null } },…

vue实现编辑

vue实现编辑

Vue 实现编辑功能 在 Vue 中实现编辑功能通常涉及表单绑定、状态管理和事件处理。以下是一个常见的实现方法: 双向数据绑定 使用 v-model 指令实现表单元素与数据的双向绑定: <i…

vue 实现树状

vue 实现树状

Vue 实现树状结构的方法 递归组件实现树状结构 递归组件是 Vue 中实现树状结构的常见方法。通过组件自身调用自身,可以轻松构建多层级树状结构。 <template> <ul…