vue3动态添加路由

 更新时间:2022年06月20日 14:17:56   作者:小绵杨Yancy  
这篇文章主要介绍了vue3动态添加路由,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

前言

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

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

一、初始化项目

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

初始化路由:

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页面。

二、添加“vip”路由

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

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

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

可以成功访问了。

三、总结

可以了解到,动态添加路由就是使用了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 }],
})

到此这篇关于vue3动态添加路由的文章就介绍到这了,更多相关vue动态路由内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • VueJs 将接口用webpack代理到本地的方法

    VueJs 将接口用webpack代理到本地的方法

    本篇文章主要介绍了VueJs 将接口用webpack代理到本地的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • JS框架之vue.js(深入三:组件1)

    JS框架之vue.js(深入三:组件1)

    这篇文章主要介绍了JS框架之vue.js component组件的相关资料,本文通过实例详解的方式给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • Vue3的7种种组件通信详情

    Vue3的7种种组件通信详情

    Vue3兼容大部分Vue2的特性,用Vue2代码开发Vue3都可以,性能上面打包大小减少 41%,初次渲染快 55%,更新快 133%,内存使用减少 54%,本篇文章主要介绍Vue3的7种种组件通信,需要的朋友可以参考下面文章的具体内容
    2021-09-09
  • 功能强大的vue.js拖拽组件安装应用

    功能强大的vue.js拖拽组件安装应用

    这篇文章主要为大家介绍了功能强大的vue.js拖拽组件安装应用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Vue2.x和Vue3.x的双向绑定原理详解

    Vue2.x和Vue3.x的双向绑定原理详解

    这篇文章主要给大家介绍了关于Vue2.x和Vue3.x的双向绑定原理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • vue element实现多个Formt表单同时验证

    vue element实现多个Formt表单同时验证

    这篇文章主要介绍了vue element实现多个Formt表单同时验证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • vue使用sass根据环境进行样式判断区分方式

    vue使用sass根据环境进行样式判断区分方式

    这篇文章主要介绍了vue使用sass根据环境进行样式判断区分方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)

    Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)

    这篇文章主要介绍了Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Vue.js通用应用框架-Nuxt.js的上手教程

    Vue.js通用应用框架-Nuxt.js的上手教程

    本篇文章主要介绍了Vue.js通用应用框架-Nuxt.js的上手教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • vue scss后缀文件background-image路径错误的解决

    vue scss后缀文件background-image路径错误的解决

    这篇文章主要介绍了vue scss后缀文件background-image路径错误的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论