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


Posted in Javascript onJune 25, 2018

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

问题描述:

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

解决方法:

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

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

{path: '/live/list(/)?:foo', redirect: '/s/live/list'},
{path: '/s/live/list', meta: {keepAlive:true,title: '课程'}, component: resolve => 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'], resolve)},

新的问题:  

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

解决方法:

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

{path: '*',meta:{title: '学部'}, component: resolve => require(['../pages/NotFound/Index.vue'], resolve)},

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

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
onbeforeunload与onunload事件异同点总结
Jun 24 Javascript
JS验证邮件地址格式方法小结
Dec 01 Javascript
详解javascript中原始数据类型Null和Undefined
Dec 17 Javascript
jQuery Chart图表制作组件Highcharts用法详解
Jun 01 Javascript
AngularJs Understanding the Controller Component
Sep 02 Javascript
js通过指定下标或指定元素进行删除数组的实例
Jan 12 Javascript
AngularJS 仿微信图片手势缩放的实例
Sep 28 Javascript
JS基于Location实现访问Url、重定向及刷新页面的方法分析
Dec 03 Javascript
vue接入腾讯防水墙代码
May 07 Javascript
JS+css3实现幻灯片轮播图
Aug 14 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
Aug 14 Javascript
vue组件添加事件@click.native操作
Oct 30 Javascript
JavaScript实现封闭区域布尔运算的示例代码
Jun 25 #Javascript
详解React之父子组件传递和其它一些要点
Jun 25 #Javascript
Vue EventBus自定义组件事件传递
Jun 25 #Javascript
一个Vue页面的内存泄露分析详解
Jun 25 #Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
Jun 25 #Javascript
angularjs结合html5实现拖拽功能
Jun 25 #Javascript
vue中vee validate表单校验的几种基本使用
Jun 25 #Javascript
You might like
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
window.open被浏览器拦截后的自定义提示效果代码
2007/11/19 Javascript
jQuery 位置插件
2008/12/25 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
如何防止回车(enter)键提交表单
2014/05/11 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
详解Javascript继承的实现
2016/03/25 Javascript
xtemplate node.js 的使用方法实例解析
2016/08/22 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
常见python正则用法的简单实例
2016/06/21 Python
django session完成状态保持的方法
2018/11/27 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
python实现高斯投影正反算方式
2020/01/17 Python
python pillow库的基础使用教程
2021/01/13 Python
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
英国曼彻斯特宠物用品品牌:Bunty Pet Products
2019/07/27 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
房地产员工找工作的自我评价
2013/11/15 职场文书
大学生自我鉴定评语
2014/01/27 职场文书
党员一句话承诺大全
2014/03/28 职场文书
师德师风建设方案
2014/05/08 职场文书
销售口号大全
2014/06/11 职场文书
2014年银行员工年终自我评价
2014/09/19 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS