vue3动态添加路由

作者:小绵杨Yancy 时间:2024-05-13 09:08:34 

前言

有的时候我们需要根据不同的用户身份生成不同的路由规则,例如:

vip用户应该有自己的vip页面所对应的专用路由。

一、初始化项目

初始化vite + vue + ts项目,引入vue-router。
目录结构如下,注意这个404重定向,vue3不支持直接使用“*”匹配所有路由了,要使用:catchAll(.*)

vue3动态添加路由

初始化路由:

import {createRouter, createWebHashHistory} from "vue-router";
const  routes = [
   {
       path: "/",
       component: () => import("../views/HomePage.vue")
   },
   {
       path: "/404",
       component: () => import("../views/ErrorPage.vue")
   },
   {
       path: "/:catchAll(.*)", // 不识别的path自动匹配404
       redirect: '/404',
   },
]
const router=createRouter({
   history: createWebHashHistory(),
   routes
})
export default router;

现在如果去访问vip路由,则会跳转到404页面。

vue3动态添加路由

二、添加“vip”路由

如果需要访问vip页面,那么就需要我们动态地添加vip路由,下面代码实现了vip路由添加:

import {useRouter} from "vue-router";
let router = useRouter();
function addRouter(){
 router.addRoute(  {
   path: "/vip",
   component: () => import("../views/VipPage.vue")
 })
}

此时我们再去访问vip路由路径:

vue3动态添加路由

可以成功访问了。

三、总结

可以了解到,动态添加路由就是使用了router对象的addRoute方法。有时候可能是添加嵌套路由,也就是子路由。

router.addRoute({ name: 'admin', path: '/admin', component: Admin })
router.addRoute('admin', { path: 'settings', component: AdminSettings })

// 这等效于:
router.addRoute({
 name: 'admin',
 path: '/admin',
 component: Admin,
 children: [{ path: 'settings', component: AdminSettings }],
})

来源:https://blog.csdn.net/ZHANGYANG_1109/article/details/125334900

标签:vue3,动态,添加,路由
0
投稿

猜你喜欢

  • oracle下加密存储过程的方法

    2009-02-28 10:50:00
  • Python自动化之批量处理工作簿和工作表

    2023-02-16 08:07:30
  • python使用 request 发送表单数据操作示例

    2022-08-06 07:31:07
  • 公众号接入chatGPT的详细教程 附Python源码

    2021-09-10 04:48:31
  • python抓取网页内容示例分享

    2022-04-25 19:02:56
  • JavaScript监听触摸事件代码实例

    2023-08-20 19:12:54
  • MySQL数据库在Linux下二进制日志恢复方法

    2009-07-30 08:55:00
  • 数字人组件反写[asp组件开发实例1]

    2009-06-09 13:10:00
  • 深入浅析Python 中 is 语法带来的误解

    2021-08-23 14:18:17
  • Python flask 框架使用flask-login 模块的详细过程

    2021-05-02 04:38:08
  • Python如何用NumPy读取和保存点云数据

    2022-05-26 17:41:19
  • Python安装Imaging报错:The _imaging C module is not installed问题解决方法

    2021-05-19 06:09:39
  • 如何获取当前 select 元素的值

    2010-03-29 13:07:00
  • javascript 数组去重复(在线去重工具)

    2024-04-16 09:14:51
  • 用Python实现数据的透视表的方法

    2022-10-11 22:16:54
  • 大容量csv快速内导入sqlserver的解决方法(推荐)

    2024-01-13 00:44:12
  • python实现MD5进行文件去重的示例代码

    2021-12-13 02:28:23
  • python中yaml配置文件模块的使用详解

    2021-06-05 08:06:45
  • asp 判断上传文件中是否存在危险代码

    2011-03-17 11:19:00
  • Python设计模式之命令模式原理与用法实例分析

    2022-07-28 20:49:15
  • asp之家 网络编程 m.aspxhome.com