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 相关文章推荐
extjs中grid中嵌入动态combobox的应用
Jan 01 Javascript
用JavaScript仿PS里的羽化效果代码
Dec 20 Javascript
js实现圆盘记速表
Aug 03 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
Dec 22 Javascript
关于JavaScript的单双引号嵌套问题
Aug 20 Javascript
nginx配置React静态页面的方法教程
Nov 03 Javascript
微信小程序开发之自定义tabBar的实现
Sep 06 Javascript
vue单页缓存方案分析及实现
Sep 25 Javascript
vueScroll实现移动端下拉刷新、上拉加载
Mar 22 Javascript
JS左右无缝轮播功能完整实例
May 16 Javascript
JS实现分页导航效果
Feb 19 Javascript
vue实现拖拽进度条
Mar 01 Vue.js
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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
留言板翻页的实现详解
2006/10/09 PHP
php中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
使用AngularJS对表单提交内容进行验证的操作方法
2017/07/12 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
解决Vue+Element ui开发中碰到的IE问题
2018/09/03 Javascript
JavaScript数据结构之栈实例用法
2019/01/18 Javascript
微信小程序解析富文本过程详解
2019/07/13 Javascript
Windows下安装 node 的版本控制工具 nvm
2020/02/06 Javascript
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
2017/08/31 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
2019/06/13 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
Yves Rocher伊夫·黎雪美国官网:法国始创植物美肌1959
2019/01/09 全球购物
高中毕业自我鉴定
2013/12/16 职场文书
军训心得体会
2013/12/31 职场文书
李白故里导游词
2015/02/12 职场文书