当前位置:首页 > VUE

vue实现路由导航

2026-03-26 20:40:46VUE

Vue 路由导航实现方法

安装 Vue Router

在项目中安装 Vue Router 依赖:

npm install 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: '/',
    name: 'Home',
    component: Home
  },
  {
    path: '/about',
    name: 'About',
    component: About
  }
]

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

export default router

注册路由

在 main.js 中注册路由:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

const app = createApp(App)
app.use(router)
app.mount('#app')

路由视图

在 App.vue 中添加路由视图:

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

导航方式

声明式导航(使用 <router-link>):

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

编程式导航(使用 router.push):

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

路由传参

路径参数

// 路由配置
{
  path: '/user/:id',
  name: 'User',
  component: User
}

// 导航方式
this.$router.push('/user/123')
// 或
this.$router.push({ name: 'User', params: { id: 123 } })

查询参数

this.$router.push({ path: '/search', query: { keyword: 'vue' } })

路由守卫

全局前置守卫:

router.beforeEach((to, from, next) => {
  // 进行权限验证等操作
  if (to.meta.requiresAuth && !isAuthenticated) {
    next('/login')
  } else {
    next()
  }
})

组件内守卫:

export default {
  beforeRouteEnter(to, from, next) {
    // 在渲染该组件的对应路由被验证前调用
    next()
  },
  beforeRouteUpdate(to, from, next) {
    // 在当前路由改变,但该组件被复用时调用
    next()
  },
  beforeRouteLeave(to, from, next) {
    // 导航离开该组件的对应路由时调用
    next()
  }
}

嵌套路由

配置嵌套路由:

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

在父组件中添加 <router-view>

<template>
  <div class="user">
    <h2>User</h2>
    <router-view/>
  </div>
</template>

路由懒加载

优化性能,按需加载路由组件:

vue实现路由导航

const User = () => import('../views/User.vue')

const routes = [
  {
    path: '/user',
    name: 'User',
    component: User
  }
]

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

相关文章

vue实现分屏

vue实现分屏

Vue 实现分屏的方法 分屏功能通常用于展示多个独立内容区域,以下是几种常见的实现方式: 使用 CSS Grid 布局 通过 CSS Grid 可以轻松创建分屏布局,在 Vue 组件中直接应用样式:…

vue 动画 实现

vue 动画 实现

vue 动画实现方法 Vue 提供了多种方式实现动画效果,主要包括过渡动画和动态动画两类。 使用 <transition> 组件实现基础过渡 通过 Vue 内置的 <transit…

vue实现异步

vue实现异步

Vue 实现异步操作的常见方法 Vue 提供了多种方式来处理异步操作,包括数据获取、事件处理等场景。 使用 async/await 在 Vue 方法中可以直接使用 async/await 语法处理异…

vue 实现modal

vue 实现modal

Vue 实现 Modal 的方法 使用 Vue 原生组件 通过 Vue 的组件系统可以轻松实现 Modal。创建一个可复用的 Modal 组件,通过 props 控制显示与隐藏。 <templ…

vue实现slot

vue实现slot

Vue 中的 Slot 实现方法 Vue 的 slot 是一种内容分发机制,允许父组件向子组件插入内容。以下是几种常见的 Slot 实现方式: 默认 Slot 子组件通过 <slot>…

vue实现选人

vue实现选人

实现选人功能的基本思路 在Vue中实现选人功能通常涉及以下核心环节:数据绑定、用户交互处理、状态管理以及界面渲染。以下是具体实现方法: 数据准备与组件结构 创建包含人员信息的数组,通常从API获取或…