vue-router重定向不刷新问题的解决

前阵子太忙了,自己一个人一边开发着新项目,一边维护着旧项目,没时间写博客,终于让我腾出时间了。废话少说,开始正文。

问题描述:

之前项目是angular开发的,后来用vue重构后。项目路径和vue路径不一致,但是app端分享出的链接依旧是旧项目链接

解决方法

通过阅读vue-router的官方文档,发现重定向可以解决这个问题。

如之前文件路径是'/live/detail/id=7234','/skill/microList/',新项目路径是 '/s/live/detail?id=7234','/s/live/list'

require(['../pages/s/live/list/Index.vue'],resolve)},{path: '/live/detail(/)?:id',redirect: '/s/live/detail?:id'},{path: '/s/live/detail',Meta: {title: '课程详情'},component: resolve => require(['../pages/s/live/detail/Index.vue'],

新的问题: 

 

本来以为重定向就万事大吉了,结果发版后,有用户反馈是空白页面。我仔细看了路径没问题啊,顺直一点点排查,发现重定向成功了,但是页面没刷新

解决方法

通过仔细观察,重定向的过程,发现会先执行旧路由,再进行重定向,那么可以统一配置旧路径,让其刷新。router中

代码如下:
require(['../pages/NotFound/Index.vue'],

使用通配符,让之前没有写路径规则的页面,统一跳转一个新的页面,让再新页面判断是否是重定向过来的。NotFound页面代码

{ console.warn(to.redirectedFrom) if(to.redirectedFrom){//vue-router redirect不会刷新页面,需要判断并刷新 // vm.$router.go(0)//safari浏览器go(0)无效 window.location.reload() } }) },

重定向页面会有redirectedFrom这个属性,然后让其刷新即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

相关文章

可以通过min-width属性来设置el-table-column的最小宽度。以...
yarn dev,当文件变动后,会自动重启。 yanr start不会自动重...
ref 用于创建一个对值的响应式引用。这个值可以是原始值(如...
通过修改 getWK005 函数来实现这一点。这里的 query 参数就是...
<el-form-item label="入库类型" ...
API 变动 样式类名变化: 一些组件的样式类名有所变动,可能需...