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

 更新时间:2023年04月19日 14:18:43   作者:小只笨笨狗~  
这篇文章主要介绍了vue动态添加路由后刷新页面白屏问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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()的改变!

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

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

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

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

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

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

总结

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

相关文章

  • Vue实战记录之登陆页面的实现

    Vue实战记录之登陆页面的实现

    最近学习过程中常碰到让用户登录注册这种,这篇文章主要给大家介绍了关于Vue实战记录之登陆页面实现的相关资料,需要的朋友可以参考下
    2021-06-06
  • vue组件常用的父子、兄弟、跨组件等传值方法

    vue组件常用的父子、兄弟、跨组件等传值方法

    Vue常用的三种传值方式有: •父传子 •子传父 •非父子传值 引用官网的一句话:父子组件的关系可以总结为 prop 向下传递,事件向上传递,熟悉vue各类关系的组件之间传值方法会令开发更加得心应手,下面将对父子、兄弟、页级组件之间的传值作浅谈
    2023-12-12
  • vue3常用的API使用简介

    vue3常用的API使用简介

    这篇文章主要介绍了vue3常用的API使用简介,帮助大家更好的理解和学习使用vue,感兴趣的朋友可以了解下
    2021-03-03
  • Vue学习之路之登录注册实例代码

    Vue学习之路之登录注册实例代码

    本篇文章主要介绍了Vue学习之路之登录注册实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法

    Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法

    vue中v-if 和v-else-if在页面加载的时候,不满足条件的标签会加载然后再消失掉,如果要解决这个问题,下面小编给大家带来了实例代码,需要的朋友参考下吧
    2018-10-10
  • vue-cli如何修改打包项目结构及前缀

    vue-cli如何修改打包项目结构及前缀

    这篇文章主要介绍了vue-cli如何修改打包项目结构及前缀问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • vue 卸载eslint方式

    vue 卸载eslint方式

    这篇文章主要介绍了vue 卸载eslint方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue函数式组件-你值得拥有

    Vue函数式组件-你值得拥有

    这篇文章主要介绍了Vue函数式组件及vue函数式组件的优缺点,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • element-ui中Table表格省市区合并单元格的方法实现

    element-ui中Table表格省市区合并单元格的方法实现

    这篇文章主要介绍了element-ui中Table表格省市区合并单元格的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • vue使用GraphVis开发无限拓展的关系图谱的实现

    vue使用GraphVis开发无限拓展的关系图谱的实现

    本文主要介绍了vue使用GraphVis开发无限拓展的关系图谱,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08

最新评论