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的颜色选择插件实例代码
Oct 02 Javascript
JS 继承实例分析
Nov 04 Javascript
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
Mar 04 Javascript
微信JS接口汇总及使用详解
Jan 09 Javascript
巧方法 JavaScript获取超链接的绝对URL地址
Jun 14 Javascript
原生js简单实现放大镜特效
May 16 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
Jun 28 jQuery
Vue触发隐藏input file的方法实例详解
Aug 14 Javascript
微信小程序 云开发模糊查询实现解析
Sep 02 Javascript
vue draggable resizable gorkys与v-chart使用与总结
Sep 05 Javascript
jQuery插件simplePagination的使用方法示例
Apr 28 jQuery
JQuery使用数组遍历跳出each循环
Sep 01 jQuery
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中去除所有js,html,css代码
2010/10/12 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
jqgrid 表格数据导出实例
2013/11/21 Javascript
javascript中setTimeout的问题解决方法
2014/05/08 Javascript
理解javascript闭包
2015/12/15 Javascript
JavaScript排序算法动画演示效果的实现方法
2016/10/18 Javascript
Angularjs 依赖压缩及自定义过滤器写法
2017/02/04 Javascript
利用node.js如何创建子进程详解
2017/12/09 Javascript
vue获取dom元素注意事项
2017/12/28 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
Vue实现计算器计算效果
2020/08/17 Javascript
angular *Ngif else用法详解
2020/12/15 Javascript
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
python实现图像拼接
2020/03/05 Python
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
英文求职信写作小建议
2014/02/16 职场文书
铲车司机岗位职责
2014/03/15 职场文书
厨房领班竞聘演讲稿
2014/04/23 职场文书
党建工作经验交流材料
2014/05/25 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
2015年党风廉政建设责任书
2015/01/29 职场文书
素质教育学习心得体会
2016/01/19 职场文书
普希金的诗歌赏析(3首)
2019/08/20 职场文书
PHP中strval()函数实例用法
2021/06/07 PHP
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android