vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue动态加载路由

vue动态加载路由的3种方式总结

作者:arno-cai

这篇文章主要介绍了vue动态加载路由的3种方式总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue动态加载路由3种方式

使用场景

后管系统,处理不同角色,不同权限,显示不同菜单。

目的

根据需求,动态加载路由,处理后台返回的不同菜单权限。

方法

方法一:

注册所有路由,根据后台返回菜单数据,显示菜单。

弊端:路由全部注册,菜单没有显示;用户可以手动更改url值,依然会显示当前组件。

方法二:

前端手动写好,根据不同的角色,创建多个不同的路由,根据登录的角色,动态的加载某个数组。

弊端:如果后台新增角色,那么只有修改前端代码,重新部署。

方法三(推荐):

菜单动态生成路由映射

菜单->url->路由->path->component(数组,routes)

后台返回的菜单,有url;url对应的是路由里面的path;path对面不同的组件。

注意:

根据业务需求自行选择

vue动态添加路由后刷新失效

当添加路由addRoutes的时候,正常点击是没问题的,但是刷新一次页面,那么动态添加的路由就会失效,

用getRoutes() 打印出来看的时候确定路由已经添加进去了,所以这个原因应该是

当你执行到addRoutes时,路由要添加进去了,但是,路由不是响应式的,从执行循序来看,地址栏快于路由的添加,那找不到这个路径了就只能白屏了,除非设置了404的页面

那么怎么解决这个问题, 只需要再进行一次拦截就好了,代码如下:

实测过,这样已经解决刷新页面空白的问题了,

同学们可以参考一下,具体问题还是要具体分析

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文