温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

vue动态添加路由后刷新页面白屏问题如何解决

发布时间:2023-04-19 15:35:44 来源:亿速云 阅读:183 作者:iii 栏目:开发技术

这篇“vue动态添加路由后刷新页面白屏问题如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue动态添加路由后刷新页面白屏问题如何解决”文章吧。

    解决思路

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

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

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

    vue动态添加路由后刷新页面白屏问题如何解决

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

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

    vue动态添加路由后刷新页面白屏问题如何解决

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

    vue动态添加路由后刷新页面白屏问题如何解决

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

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

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

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

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

    vue动态添加路由后刷新页面白屏问题如何解决

    以上就是关于“vue动态添加路由后刷新页面白屏问题如何解决”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

    向AI问一下细节
    推荐阅读:
    1. vue
    2. vue分页效果

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    vue
    AI