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 相关文章推荐
javascript showModalDialog,open取得父窗口的方法
Mar 10 Javascript
iframe跨域通信封装详解
Aug 11 Javascript
jquery小火箭返回顶部代码分享
Aug 19 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
Oct 20 Javascript
jQuery解析Json实例详解
Nov 24 Javascript
jquery实现两边飘浮可关闭的对联广告
Nov 27 Javascript
js获取隐藏元素宽高的实现方法
May 19 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
Nov 18 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
Jan 18 Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
Mar 03 Javascript
VUE.js实现动态设置输入框disabled属性
Oct 28 Javascript
微信小程序实现上传照片代码实例解析
Aug 04 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中最容易忘记的一些知识点总结
2013/04/28 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
js jquery分别实现动态的文件上传操作按钮的添加和删除
2014/01/13 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
vue组件间通信解析
2017/03/01 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
vue跳转方式(打开新页面)及传参操作示例
2020/01/26 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python实现在pandas.DataFrame添加一行
2018/04/04 Python
flask框架视图函数用法示例
2018/07/19 Python
Python装饰器用法实例分析
2019/01/14 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
科室工作个人总结的自我评价
2013/10/29 职场文书
经理职责范文
2013/11/08 职场文书
应届生法律顾问求职信
2013/11/19 职场文书
找工作最新求职信
2013/12/22 职场文书
服务员岗位职责
2014/01/29 职场文书
大学生活动策划方案
2014/02/10 职场文书
国家助学金感谢信
2015/01/21 职场文书
python 遍历磁盘目录的三种方法
2021/04/02 Python