当前位置:首页 > VUE

vue router实现导航

2026-02-19 01:46:29VUE

Vue Router 导航实现方法

安装与基础配置 确保已安装 Vue Router,可通过 npm 或 yarn 安装:

npm install vue-router

在项目中创建路由配置文件(如 router/index.js):

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

const routes = [
  { path: '/', component: Home },
  { path: '/about', component: () => import('../views/About.vue') }
];

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

export default router;

路由视图与链接 在根组件(如 App.vue)中添加 <router-view> 作为路由出口:

<template>
  <div id="app">
    <router-link to="/">Home</router-link>
    <router-link to="/about">About</router-link>
    <router-view/>
  </div>
</template>

编程式导航 通过 useRouter 在组件中实现编程跳转:

import { useRouter } from 'vue-router';

export default {
  setup() {
    const router = useRouter();
    const navigate = () => {
      router.push('/about'); // 跳转路由
      // router.replace('/about'); // 替换当前路由
      // router.go(-1); // 后退
    };
    return { navigate };
  }
};

动态路由与参数 定义带参数的路由:

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

在组件中通过 useRoute 获取参数:

vue router实现导航

import { useRoute } from 'vue-router';

export default {
  setup() {
    const route = useRoute();
    console.log(route.params.id); // 获取动态参数
  }
};

导航守卫 全局前置守卫示例:

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

组件内守卫:

export default {
  beforeRouteEnter(to, from, next) {
    // 在渲染该组件的对应路由被验证前调用
    next();
  }
};

嵌套路由 配置子路由:

vue router实现导航

const routes = [
  {
    path: '/parent',
    component: Parent,
    children: [
      { path: 'child', component: Child }
    ]
  }
];

父组件需包含嵌套的 <router-view>

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

路由元信息 通过 meta 字段传递额外信息:

const routes = [
  { 
    path: '/admin', 
    component: Admin,
    meta: { requiresAuth: true }
  }
];

路由懒加载 使用动态导入实现懒加载:

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

注意事项

  • 路由模式需根据需求选择 createWebHistory(需服务器支持)或 createWebHashHistory
  • 动态路由参数变化时需监听 route.params 变化
  • 导航守卫中确保始终调用 next() 避免阻塞

标签: vuerouter
分享给朋友:

相关文章

vue实现自定义登录

vue实现自定义登录

实现自定义登录的基本步骤 在Vue中实现自定义登录功能通常需要结合前端和后端技术。以下是一个基本的实现流程: 创建登录表单组件 使用Vue的单文件组件创建一个登录表单,包含用户名和密码输入框以及提…

vue懒加载实现难吗

vue懒加载实现难吗

vue懒加载的实现难度 Vue懒加载的实现并不复杂,核心逻辑是通过动态导入(Dynamic Imports)和路由配置或组件异步加载完成。以下是具体实现方法: 路由懒加载实现 在Vue Router…

vue优秀实现

vue优秀实现

Vue.js 优秀实现方法 响应式数据管理 使用 Vue 的 ref 和 reactive 处理基础类型和对象类型数据,结合 computed 计算属性优化渲染性能。对于复杂状态,推荐 Pinia 替…

vue实现visual

vue实现visual

Vue 实现可视化(Visual)的常见方法 在 Vue 中实现可视化通常涉及数据可视化库的集成,以下是几种主流方案: 使用 ECharts ECharts 是一个强大的 JavaScript 图表…

vue实现批量

vue实现批量

Vue 实现批量操作的方法 在 Vue 中实现批量操作通常涉及选择多个项目并执行统一处理,例如批量删除、批量更新等。以下是几种常见实现方式: 表格多选批量操作 使用 el-table 配合复选框实现…

vue实现tree

vue实现tree

Vue 实现 Tree 组件 使用 Vue 实现 Tree 组件可以通过递归组件的方式来实现层级结构展示。以下是一个完整的实现方法: 基础递归组件实现 创建 Tree 组件文件 Tree.vue,使…