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 相关文章推荐
TFDN图片播放器 不错自动播放
Oct 03 Javascript
初学Javascript的一些总结
Nov 03 Javascript
JavaScript 对象链式操作测试代码
Apr 25 Javascript
JQuery中each()的使用方法说明
Aug 19 Javascript
js 判断控件获得焦点的示例代码
Mar 04 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
Sep 06 Javascript
Node.js中的流(Stream)介绍
Mar 30 Javascript
jQuery实现下滑菜单导航效果代码
Aug 25 Javascript
jQuery实现定位滚动条位置
Aug 05 Javascript
ECMAScript6轮播图实践知识总结
Aug 17 Javascript
详解Angular 4.x NgIf 的用法
May 22 Javascript
vue mint-ui学习笔记之picker的使用
Oct 11 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
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
javascript中异常处理案例(推荐)
2016/10/03 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
2019/08/02 Javascript
[02:39]DOTA2国际邀请赛助威团西雅图第一天
2013/08/08 DOTA
[47:53]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#2COL VS Spirit
2016/03/02 DOTA
python算法学习之计数排序实例
2013/12/18 Python
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
Python的多维空数组赋值方法
2018/04/13 Python
django 解决manage.py migrate无效的问题
2018/05/27 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
Jupyter notebook 远程配置及SSL加密教程
2020/04/14 Python
Python轻量级web框架bottle使用方法解析
2020/06/13 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
html5视频常用API接口的实战示例
2020/03/20 HTML / CSS
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
银行工作检查书范文
2014/01/31 职场文书
事假请假条范文
2014/04/11 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
运动会广播稿50字
2015/08/19 职场文书