vue中beforeRouteLeave实现页面回退不刷新的示例代码


Posted in Javascript onNovember 01, 2019

路由切换返回前一个路由时实现页面不刷新功能,首先想到的是keep-alive,但是页面不属于父子级关系,所以决定用beforeRouteLeave,下面贴代码

beforeRouteLeave(to, from, next){
  if(to.name !== 'page2'){
  
    //判断是从哪个路由过来的,如果不是page2过来的需要做什么操作在这里实现
    //如果是page2过来的,表明当前页面不需要刷新获取新数据,直接用之前缓存的数据即可
  }
  next();
 }

beforeRouteLeave后面的参数to是关于上个页面的信息,to.name就是上个路由名称。

这里有的人beforeRouteLeave方法无法触发可能是因为在page2页面中路由跳转写了router.go(-1) ,这里必须写具体跳转的路由名称

this.$router.push({name:'xxx'});

PS:

最近才做了一个功能一个路由下面有两个tab切换的页面,互相切换的时候需要保持之前选的参数,其实tab本身是有这个功能的,但是这个需求切换的时候是需要像后台发送请求,并且路由改变再切回来参数是要初始化的,所以想到了用beforerouteleave

vue中beforeRouteLeave实现页面回退不刷新的示例代码

vue中beforeRouteLeave实现页面回退不刷新的示例代码

beforerouteleave之前是一直听闻这个东西并没有用过,再网上看了,按照他们的用法并没有效果

然后就自己试了一下结果成功了

看我的目录结构

vue中beforeRouteLeave实现页面回退不刷新的示例代码

下面的migrationPeople和personalMigration分别是tab切换里面的两个内容

index里面是写tab切换的

我们只需要把beforeRouteLeave想写vue生命周期一样的写法写进来就好了,至于参数to,from是什么就给路由守卫是一样的,感兴趣的可以自己打印看一下

beforeRouteLeave(to,from,next){
   if(sessionStorage.getItem('migrationPeopleDate')){
    sessionStorage.removeItem('migrationPeopleDate')
   }
   if(sessionStorage.getItem('personalMigrationMan')){
    sessionStorage.removeItem('personalMigrationMan')
   }
   next()
  },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Firefox outerHTML实现代码
Jun 04 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
Feb 05 Javascript
javascript实现的HashMap类代码
Jun 27 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
May 24 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
Aug 24 Javascript
vue中axios解决跨域问题和拦截器的使用方法
Mar 07 Javascript
使用Angular CLI进行Build(构建)和Serve详解
Mar 24 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
Sep 30 Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
Oct 12 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
Nov 29 Javascript
Vue-cli3简单使用(图文步骤)
Apr 30 Javascript
js实现上传图片并显示图片名称
Dec 18 Javascript
vue自定义switch开关组件,实现样式可自行更改
Nov 01 #Javascript
Vue实现导航栏的显示开关控制
Nov 01 #Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
Nov 01 #Javascript
vue设置导航栏、侧边栏为公共页面的例子
Nov 01 #Javascript
Vue中jsx不完全应用指南小结
Nov 01 #Javascript
vue导航栏部分的动态渲染实例
Nov 01 #Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
Nov 01 #Javascript
You might like
PHP&MYSQL服务器配置说明
2006/10/09 PHP
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
YII路径的用法总结
2014/07/09 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
日期 时间js控件
2009/05/07 Javascript
js更优雅的兼容
2010/08/12 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
浅析js封装和作用域
2013/07/09 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
javascript中setTimeout的问题解决方法
2014/05/08 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
Javascript中typeof 用法小结
2015/05/12 Javascript
jquery判断iPhone、Android设备类型
2016/09/14 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
vue组件实现文字居中对齐的方法
2017/08/23 Javascript
使用vue引入maptalks地图及聚合效果的实现
2020/08/10 Javascript
javascript实现倒计时关闭广告
2021/02/09 Javascript
简化Python的Django框架代码的一些示例
2015/04/20 Python
python机器学习库常用汇总
2017/11/15 Python
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
Python实现时间序列可视化的方法
2019/08/06 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
python 默认参数相关知识详解
2019/09/18 Python
Numpy一维线性插值函数的用法
2020/04/22 Python
python使用建议与技巧分享(一)
2020/08/17 Python
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
C#中有没有静态构造函数,如果有是做什么用的?
2016/06/04 面试题
护理专业自荐信范文
2014/02/26 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
公司前台接待岗位职责
2015/04/03 职场文书
房屋租赁意向书范本
2015/05/09 职场文书