解决思路:页面刷新白屏其实是因为vuex引起的,由于刷新页面vuex数据会丢失,所以动态添加路由这一步也就失效了(之前以为,将动态添加的路由存储在了sessionStorage中,就不会vuex刷新数据丢失的影响,师父解惑:在通过vuex中的state属性存储路由在sessionStorage中,只是存储了左侧菜单栏展示的信息path地址,但是并没有存进去路由详细信息,比如name,meta值,利用vue插件即可看到本地route里面的真实数据!所以;只需要添加路由守卫,在每次页面刷新的时候都来判断是否添加的动态路由【这里设置一个变量记录是否添加的布尔值】,如果为false,即再次执行一遍添加动态路由的过程即可next()!!大功告成)
详细步骤:详细代码上一篇文章有,步骤只解决白屏问题!
1、在store.js中的mutations中添加动态路由;
![](https://i-blog.csdnimg.cn/blog_migrate/797aab12f4da5f06e8a400b564f08d04.png)
第一次 addRouters(state.asyncrouters)由于state.asyncrouters是常量路由和动态路由的合并,这样添加会造成路由的重复添加----所以将异步路由拉出来添加就不会造成重复。
目的:在路由守卫中判断变量为false时,调用此方法在执行一遍:动态添加路由!
![](https://i-blog.csdnimg.cn/blog_migrate/43c3dc56159df0beeab9c9e032791982.png)
3、如果操作完成还是白屏-------请注意黄色框中的next()的改变!
![](https://i-blog.csdnimg.cn/blog_migrate/50d1bd0fa0f41c470a93de4c82795e13.png)