当前位置:首页 > VUE

vue路由实现介绍

2026-03-28 09:08:14VUE

Vue 路由基础概念

Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。它通过动态映射组件到路由实现页面无刷新跳转,同时支持嵌套路由、路由参数、导航守卫等高级功能。

安装与基本配置

通过 npm 或 yarn 安装 Vue Router:

npm install vue-router@4

在项目中初始化路由:

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

const router = createRouter({
  history: createWebHistory(),
  routes: [
    { path: '/', component: Home },
    { path: '/about', component: About }
  ]
});

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>
    <router-link to="/">Home</router-link>
    <router-link to="/about">About</router-link>
    <router-view></router-view>
  </div>
</template>

<router-link> 生成导航链接,to 属性指定目标路径。通过 router.push 编程式导航:

methods: {
  navigate() {
    this.$router.push('/about');
  }
}

动态路由与参数

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

vue路由实现介绍

routes: [
  { path: '/user/:id', component: User }
]

在组件中通过 $route.params 访问参数:

const userId = this.$route.params.id;

使用 props 解耦路由参数:

routes: [
  { path: '/user/:id', component: User, props: true }
]

组件通过 props 接收参数:

export default {
  props: ['id']
};

嵌套路由

通过 children 配置嵌套路由:

vue路由实现介绍

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

父组件需包含 <router-view> 渲染子路由:

<template>
  <div>
    <h2>User Page</h2>
    <router-view></router-view>
  </div>
</template>

导航守卫

全局前置守卫 beforeEach 用于权限控制:

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

路由独享守卫 beforeEnter

routes: [
  {
    path: '/admin',
    component: Admin,
    beforeEnter: (to, from, next) => {
      // 逻辑处理
    }
  }
]

组件内守卫(如 beforeRouteEnter):

export default {
  beforeRouteEnter(to, from, next) {
    // 无法访问 `this`,可通过回调获取组件实例
    next(vm => {
      console.log(vm);
    });
  }
};

路由懒加载

通过动态导入实现懒加载,提升性能:

routes: [
  {
    path: '/dashboard',
    component: () => import('./views/Dashboard.vue')
  }
]

路由模式

  • Hash 模式:使用 URL 哈希(#),兼容性好:
    createWebHashHistory()
  • History 模式:依赖服务器配置,需处理 404 回退:
    createWebHistory()

以上内容覆盖了 Vue Router 的核心功能,可根据实际需求选择合适的功能组合。

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

相关文章

vue实现发表

vue实现发表

Vue 实现发表功能 在 Vue 中实现发表功能通常涉及表单处理、数据绑定和网络请求。以下是实现步骤和代码示例: 表单设计与数据绑定 创建一个表单用于输入发表内容,使用 v-model 进行数据双向…

vue原型实现

vue原型实现

Vue 原型实现的关键点 Vue.js 的原型系统是其响应式机制的核心部分,通过原型链实现数据的动态绑定和依赖收集。以下是实现 Vue 原型的主要技术要点。 数据响应式原理 Vue 通过 Objec…

vue实现定位

vue实现定位

Vue 中实现定位的方法 在 Vue 中实现定位可以通过以下几种方式: 使用 CSS 定位 通过 CSS 的 position 属性实现定位,Vue 中可以直接在组件的 <style>…

vue实现节流

vue实现节流

vue实现节流的方法 在Vue中实现节流(throttle)功能,通常用于限制高频事件的触发频率,例如滚动、输入或按钮点击。以下是几种常见的实现方式: 使用Lodash的throttle函数 安装L…

vue实现抖动

vue实现抖动

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

vue 实现工具

vue 实现工具

Vue 实现工具的方法 使用 Vue 实现工具功能可以通过多种方式完成,具体取决于工具的类型和需求。以下是几种常见的方法: 组件化实现 创建一个独立的 Vue 组件来封装工具功能。例如,实现一个计…