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 相关文章推荐
jQuery学习笔记 获取jQuery对象
Sep 19 Javascript
JS文本框追加多个下拉框的值的简单实例
Jul 12 Javascript
jQuery带时间的日期控件代码分享
Aug 26 Javascript
Bootstrap 粘页脚效果
Mar 28 Javascript
JavaScript中判断数据类型的方法总结
May 24 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
Aug 05 Javascript
jQuery文字轮播特效
Feb 12 Javascript
Mac系统下Webstorm快捷键整理大全
May 28 Javascript
在Koa.js中实现文件上传的接口功能
Oct 08 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
Jun 02 Javascript
Vue如何循环提取对象数组中的值
Nov 18 Vue.js
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
Dec 15 Vue.js
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
亚洲咖啡有什么?亚洲咖啡产地介绍 亚洲咖啡有什么特点?
2021/03/05 新手入门
mysql建立外键
2006/11/25 PHP
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
Jquery日历插件制作简单日历
2015/10/28 Javascript
javascript实现简单加载随机色方块
2015/12/25 Javascript
JS中frameset框架弹出层实例代码
2016/04/01 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
2020/01/22 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
[02:04]2016国际邀请赛中国区预选赛VG.R晋级之路
2016/07/01 DOTA
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python 错误和异常小结
2013/10/09 Python
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
Atom的python插件和常用插件说明
2018/07/08 Python
Python开启线程,在函数中开线程的实例
2019/02/22 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
利用Python计算KS的实例详解
2020/03/03 Python
python 基于wx实现音乐播放
2020/11/24 Python
详解HTML5中的标签
2015/06/19 HTML / CSS
幼儿教师国培感言
2014/02/19 职场文书
《彭德怀和他的大黑骡子》教学反思
2014/04/12 职场文书
志愿者活动总结范文
2014/04/26 职场文书
小学生环保倡议书
2014/05/15 职场文书