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 globalStorage类代码
Jun 04 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
Sep 12 Javascript
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
Feb 27 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
Jan 12 Javascript
JavaScript轻松创建级联函数的方法示例
Feb 10 Javascript
Vue.js教程之axios与网络传输的学习实践
Apr 29 Javascript
AngularJS表单验证功能分析
May 26 Javascript
解决vue-cli3 使用子目录部署问题
Jul 19 Javascript
angular将html代码输出为内容的实例
Sep 30 Javascript
Three.JS实现三维场景
Dec 30 Javascript
利用angular自动编译andriod APK的绕坑经历分享
Mar 08 Javascript
javascript实现的字符串转换成数组操作示例
Jun 13 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 数据库树的遍历方法
2009/02/06 PHP
PHP 字符串 小常识
2009/06/05 PHP
php基于base64解码图片与加密图片还原实例
2014/11/03 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
用javascript实现给出的盒子的序列是否可连为一矩型
2007/08/30 Javascript
学习ExtJS TextField常用方法
2009/10/07 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
js的隐含参数(arguments,callee,caller)使用方法
2014/01/28 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
AngularJS入门教程之学习环境搭建
2014/12/06 Javascript
让图片跳跃起来  javascript图片轮播特效
2016/02/16 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
es6 filter() 数组过滤方法总结
2019/04/03 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
Python3.x和Python2.x的区别介绍
2013/02/12 Python
python批量修改图片大小的方法
2018/07/24 Python
python文件拆分与重组实例
2018/12/10 Python
pytorch加载自定义网络权重的实现
2020/01/07 Python
python exit出错原因整理
2020/08/31 Python
CSS 3.0 结合video视频实现的创意开幕效果
2020/06/01 HTML / CSS
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
失业者真诚求职信范文
2013/12/25 职场文书
幼儿园安全检查制度
2014/01/30 职场文书
《口技》教学反思
2014/02/21 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
秋季运动会开幕词
2015/01/28 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
使用JS实现简易计算器
2021/06/14 Javascript