当前位置:首页 > VUE

vue实现路由管理

2026-01-16 03:17:55VUE

Vue 路由管理实现方法

Vue 路由管理通常通过 vue-router 库实现,以下是具体实现方式:

安装 vue-router

通过 npm 或 yarn 安装最新版本:

npm install vue-router@4
# 或
yarn add vue-router@4

基本路由配置

在项目中创建路由配置文件(通常为 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(process.env.BASE_URL),
  routes
})

export default router

路由视图渲染

在主入口文件(如 main.js)中引入路由:

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

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

在根组件模板中添加 <router-view>

<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('/about')

// 带查询参数
router.push({ path: '/about', query: { id: 1 } })

// 命名路由
router.push({ name: 'About' })

动态路由匹配

通过冒号 : 定义动态路径参数:

{
  path: '/user/:id',
  component: User
}

获取路由参数:

import { useRoute } from 'vue-router'

const route = useRoute()
console.log(route.params.id)

路由守卫

全局前置守卫:

router.beforeEach((to, from, next) => {
  // 验证逻辑
  next()
})

组件内守卫:

import { onBeforeRouteLeave } from 'vue-router'

onBeforeRouteLeave((to, from) => {
  // 离开确认逻辑
})

嵌套路由

定义子路由:

{
  path: '/parent',
  component: Parent,
  children: [
    { path: 'child', component: Child }
  ]
}

父组件模板中需要包含 <router-view>

<template>
  <div>
    <h2>Parent Component</h2>
    <router-view/>
  </div>
</template>

路由懒加载

使用动态导入实现组件懒加载:

{
  path: '/lazy',
  component: () => import('../views/Lazy.vue')
}

路由元信息

定义路由元字段:

{
  path: '/admin',
  component: Admin,
  meta: { requiresAuth: true }
}

在导航守卫中访问:

vue实现路由管理

router.beforeEach((to) => {
  if (to.meta.requiresAuth && !isAuthenticated) {
    return '/login'
  }
})

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

相关文章

vue响应式实现

vue响应式实现

Vue 响应式实现原理 Vue 的响应式系统基于 Object.defineProperty(Vue 2.x)或 Proxy(Vue 3.x)实现,通过数据劫持和依赖收集实现数据变化时的自动更新。…

实现 vue 框架

实现 vue 框架

Vue 框架的基本实现 Vue 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现 Vue 框架的基本步骤和核心概念。 核心概念 响应式数据绑定 Vue 的核心特性之一是响应式数…

vue实现123456

vue实现123456

Vue 实现数字 123456 的显示 在 Vue 中显示数字 123456 非常简单,可以通过以下方法实现: 方法一:直接在模板中显示 <template> <div>…

vue实现网站

vue实现网站

Vue 实现网站的基本步骤 Vue.js 是一个渐进式 JavaScript 框架,适合构建现代化的单页应用(SPA)或动态网站。以下是使用 Vue 实现网站的基本方法。 初始化 Vue 项目 使用…

vue键盘实现

vue键盘实现

监听键盘事件 在Vue中监听键盘事件可以通过v-on指令或@缩写实现。常见的键盘事件包括keydown、keyup和keypress。例如监听回车键事件: <template> &l…

vue 实现 confirm

vue 实现 confirm

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