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 相关文章推荐
Js 回车换行处理的办法及replace方法应用
Jan 24 Javascript
JavaScript常用全局属性与方法记录积累
Jul 03 Javascript
showModelDialog弹出文件下载窗口的使用示例
Nov 19 Javascript
JS实现拖动滚动条评分的效果代码分享
Sep 29 Javascript
微信小程序调用PHP后台接口 解析纯html文本
Jun 13 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
Jul 11 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
Dec 14 Javascript
JS中利用FileReader实现上传图片前本地预览功能
Mar 02 Javascript
JavaScript获取用户所在城市及地理位置
Apr 21 Javascript
vue.js父子组件通信动态绑定的实例
Sep 28 Javascript
ES6小技巧之代替lodash
Jun 07 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
Aug 13 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框架codeigniter中如何使用框架的session
2013/06/24 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
php截取字符串函数分享
2015/02/02 PHP
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
php之可变变量的实例详解
2017/09/12 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
取选中的radio的值
2010/01/11 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
JavaScript调用客户端Java程序的方法
2015/07/27 Javascript
BootStrap3学习笔记(一)之网格系统
2016/05/20 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
NodeJS处理Express中异步错误
2017/03/26 NodeJs
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
基于VUE实现的九宫格抽奖功能
2018/09/30 Javascript
js回调函数仿360开机
2019/12/26 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
[01:01:18]VP vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Django中几种重定向方法
2015/04/28 Python
python实现的简单RPG游戏流程实例
2015/06/28 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
Shell编程面试题
2016/05/29 面试题
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
活动宣传稿范文
2015/07/23 职场文书
Python学习之异常中的finally使用详解
2022/03/16 Python