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面向对象 多种创建对象方法小结
May 21 Javascript
如何用JavaScript动态呼叫函数(两种方式)
May 03 Javascript
jQuery中:submit选择器用法实例
Jan 03 Javascript
js获取当前日期时间及其它操作汇总
Apr 17 Javascript
JavaScript实现的简单拖拽效果
Jun 01 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
Aug 19 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
Sep 12 Javascript
vue一个页面实现音乐播放器的示例
Feb 06 Javascript
浅谈Vue 数据响应式原理
May 07 Javascript
JS实现数组去重,显示重复元素及个数的方法示例
Jan 21 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
Nov 07 Javascript
JS的时间格式化和时间戳转换函数示例详解
Jul 27 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 生成唯一id的几种解决方法
2013/03/08 PHP
深入分析php之面向对象
2013/05/15 PHP
解析htaccess伪静态的规则
2013/06/18 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
Lab.js初次使用笔记
2015/02/28 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
javascript验证邮件地址和MX记录的方法
2015/06/16 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
微信小程序自动客服功能
2017/11/02 Javascript
简述vue路由打开一个新的窗口的方法
2018/11/29 Javascript
小程序日历控件使用方法详解
2018/12/29 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
小程序实现简单语音聊天的示例代码
2020/07/24 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
[01:58]最残酷竞争 2016国际邀请赛中国区预选赛积分循环赛回顾
2016/06/28 DOTA
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
Python 支付整合开发包的实现
2019/01/23 Python
澳洲的服装老品牌:SABA
2018/02/06 全球购物
顶丰TOPPIK台湾官网:增发纤维假发,告别秃发困扰
2018/06/13 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
2016/04/03 面试题
工地安全检查制度
2014/02/04 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
武夷山导游词
2015/02/03 职场文书
欢送会主持词
2015/07/01 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS
Django数据库(SQlite)基本入门使用教程
2022/07/07 Python
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers
win10拖拽文件时崩溃怎么解决?win10文件不能拖拽问题解决方法
2022/08/14 数码科技