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

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

vue实现导航切换

标签: vue
分享给朋友:

相关文章

vue实现检测数组

vue实现检测数组

Vue 中检测数组变化的方法 Vue 的响应式系统无法直接检测到数组的某些变化,因为 JavaScript 的限制。以下是一些解决方案: 使用 Vue.set 或 this.$set Vue…

vue 实现简单登陆

vue 实现简单登陆

以下是一个使用 Vue 3 实现的简单登录功能示例,包含表单验证和基础交互逻辑: 创建 Vue 组件 <template> <div class="login-containe…

vue实现继承语法糖

vue实现继承语法糖

在Vue中实现继承可以通过多种方式模拟类继承的效果,以下是常见的几种方法: 使用mixins实现逻辑复用 通过Vue的mixins机制共享组件选项,达到类似继承的效果: const BaseC…

vue实现下载暂停

vue实现下载暂停

Vue实现下载暂停功能 在Vue中实现下载暂停功能,通常需要结合XMLHttpRequest或Fetch API的AbortController来控制请求中断。以下是具体实现方法: 使用XMLH…

vue实现下拉框删除

vue实现下拉框删除

Vue 实现下拉框删除功能 在Vue中实现下拉框的删除功能通常涉及以下步骤: 数据绑定与渲染 在Vue组件中定义数据数组用于存储下拉框选项: data() { return {…

eventbus vue实现

eventbus vue实现

EventBus 实现原理 EventBus 是一种发布/订阅模式,用于 Vue 组件间的通信。核心是通过一个中央事件总线管理事件监听和触发。 创建 EventBus 在 Vue 项目中创建一个独立…