解决vue动态添加路由后刷新页面白屏问题(超简单)

介绍:作为一个前端新手,项目中遇到权限处理时,通常会采用动态添加路由的方法来实现,此方法会在登陆时利用vuex将用户信息以及菜单栏需要展示的菜单路由保存,这样在用户第一次登陆项目时,动态渲染的菜单路由页面一切正常,但是当再次刷新的时候,就会出现白屏现象。。查阅了很多网站,教程代码一大堆,果断放弃,最后请教了我师父,一句话解决!

愿称为我师父为永远的神!

解决思路:页面刷新白屏其实是因为vuex引起的,由于刷新页面vuex数据会丢失,所以动态添加路由这一步也就失效了(之前以为,将动态添加的路由存储在了sessionStorage中,就不会vuex刷新数据丢失的影响,师父解惑:在通过vuex中的state属性存储路由在sessionStorage中,只是存储了左侧菜单栏展示的信息path地址,但是并没有存进去路由详细信息,比如name,meta值,利用vue插件即可看到本地route里面的真实数据!所以;只需要添加路由守卫,在每次页面刷新的时候都来判断是否添加的动态路由【这里设置一个变量记录是否添加的布尔值】,如果为false,即再次执行一遍添加动态路由的过程即可next()!!大功告成)

详细步骤:详细代码上一篇文章有,步骤只解决白屏问题!

1、在store.js中的mutations中添加动态路由;

第一次 addRouters(state.asyncrouters)由于state.asyncrouters是常量路由和动态路由的合并,这样添加会造成路由的重复添加----所以将异步路由拉出来添加就不会造成重复。

2、目的:在路由守卫中判断变量为false时,调用此方法在执行一遍:动态添加路由!

 3、如果操作完成还是白屏-------请注意黄色框中的next()的改变!

  • 27
    点赞
  • 93
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值