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 相关文章推荐
基于JQuery的多标签实现代码
Sep 19 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
Jan 18 Javascript
关于textarea提交的内容无法换行的解决办法
Apr 09 Javascript
jquery实现可拖拽弹出层特效
Jan 04 Javascript
使用js画图之饼图
Jan 12 Javascript
浅析node连接数据库(express+mysql)
Nov 30 Javascript
jQuery Dialog 取消右上角删除按钮事件
Sep 07 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
Sep 19 Javascript
详解Angular的数据显示优化处理
Dec 26 Javascript
Javascript 之封装(Package)
Sep 14 Javascript
element-ui中按需引入的实现
Dec 25 Javascript
三步搞定:Vue.js调用Android原生操作
Sep 07 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
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
PHP中的类型约束介绍
2015/05/11 PHP
PHP中串行化用法示例
2016/11/16 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
JSON语法五大要素图文介绍
2012/12/04 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
javascript内置对象操作详解
2015/02/04 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
两种方法解决javascript url post 特殊字符转义 + & #
2016/04/13 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
JQuery 选择器、DOM节点操作练习实例
2017/09/28 jQuery
深入理解Node module模块
2018/03/26 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
Element Card 卡片的具体使用
2020/07/26 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
[01:58]最残酷竞争 2016国际邀请赛中国区预选赛积分循环赛回顾
2016/06/28 DOTA
Django框架下在URLconf中指定视图缓存的方法
2015/07/23 Python
Python 实现12306登录功能实例代码
2018/02/09 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
如何转换一个字符串到enum值
2014/04/12 面试题
后勤主管工作职责
2013/12/07 职场文书
《美丽的公鸡》教学反思
2014/02/25 职场文书
简历中个人自我评价分享
2014/03/15 职场文书
校庆活动方案
2014/03/31 职场文书
2014最新党员批评与自我批评材料
2014/09/24 职场文书