vue 使用addRoutes动态添加路由及刷新页面跳转404路由的问题解决方案
作者:木木子子水水心心
我自己使用addRoutes动态添加的路由页面,使用router-link标签可以跳转,但是一刷新就会自动跳转到我定义的通配符 * 指向的404路由页面,这说明没有找到指定路由才跳到404路由的,这样的情况如何处理呢,下面小编给大家分享解决方案,一起看看吧
在做vue项目时需要使用后端给的路由权限,处理路由动态添加到路由上,几经查找在 vue-Router中有个router.addRoutes 的方法。
官方使用方法及说明 点我
router.addRoutes 函数签名: router.addRoutes(routes: Array<RouteConfig>) 动态添加更多的路由规则。参数必须是一个符合 routes 选项要求的数组。
遇到的问题:
我自己使用addRoutes动态添加的路由页面,使用router-link标签可以跳转,但是一刷新就会自动跳转到我定义的通配符 * 指向的404路由页面。这说明没有找到指定路由才跳到404路由的。
我的默认路由是这样子的(这是还没处理后端路由的公共路由也就是谁都有的路由):
在使用addRoutes之前我就定义了,通配符 * 跳转到404页面如下图: 这就是问题所在。
解决方法是 不要再路由中添加404页面 在addRoutes里进行拼接 (通配符 * 跳转到404页面的路由)(也就是动态添加红色框中的内容)
下边有详细代码:
在beforeEach中打印 to发现是404 打印from显示是/
这样子更可以确定 当页面一刷新 addRoutes 还没有添加上 路由就开始跳转了 所以找不到路由就跳转到404页面了。
在网上找了许久发现是 不能在自己写的路由里边添加404 要在addRoutes中添加404页面不然就会跳转404 所以我把代码改成下面这个样子 最后添加路由的 通配符 * 跳转404 页面果然好了
到此这篇关于vue 使用addRoutes动态添加路由 刷新页面跳转404路由的问题的文章就介绍到这了,更多相关vue 使用addRoutes动态添加路由内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!