解决vue-router 切换tab标签关闭时缓存问题


Posted in Javascript onJuly 22, 2020

在router入口页面加上 keepAlive: true // 需要被缓存 false则不需要

{
  path: 'fundProListG',
  component: resolve => require(['@/pages/product/fundPros/fundTab/fundTab.vue'], resolve),
  title: '基金首页',
  redirect: 'fundProListG/fundProListG',
  meta: {
  keepAlive: false // 不需要被缓存
  },
  children: [{
  path: 'fundProListG',
  component: resolve => require(['@/pages/product/fundPros/fundProListG.vue'], resolve),
  meta: {
  keepAlive: true // 需要被缓存
  }
  },{
  path: 'fungAdm',
  component: resolve => require(['@/pages/product/fundPros/fungAdm.vue'], resolve),
  meta: {
  keepAlive: true // 需要被缓存
  }
  }]
 },

App.vue (你在哪写的那个<router-view ></router-view>标签就在哪改动)

<keep-alive>
 <router-view v-if="$route.meta.keepAlive"></router-view>
 </keep-alive>
 <router-view v-if="!$route.meta.keepAlive"></router-view>

当点关闭标签的时候如果不想当前页面缓存 加上

解决vue-router 切换tab标签关闭时缓存问题

接着遇到了第一次缓存第二次改为false后打开不缓存了 在关闭标签页面 加上这个

解决vue-router 切换tab标签关闭时缓存问题

补充知识:解决通过vue-router打开tab页,下次进入还是上次history缓存的界面状态的问题

一、问题描述:

1. 跳转模式:界面A-->界面B(界面A中通过 this.$router.push({name:'组件B名称', params: {参数}}) 通过打开新tab页的方式打开界面B。)

2.关闭界面B,回到界面A

3.再次从A到B时,打开的界面B仍然是上次的状态,哪怕传递的参数不一样。

另:router声明如下

{
 path: 'demo/pageB',
 name: 'pageB',
 component: _import('demo/pageB'),
 meta: {
  requiresAuth: true,
  keepAlive: false, // 不需要被缓存
  title: '界面B'
 }
}

二、原因: 详见vue-router官网

解决vue-router 切换tab标签关闭时缓存问题

三、解决方式:在界面B离开时,销毁组件。代码如下:

// 导航离开该组件的对应路由时调用[可以访问组件实例 `this`]
beforeRouteLeave (to, from, next) {
 // 销毁组件,避免通过vue-router再次进入时,仍是上次的history缓存的状态
 this.$destroy(true)
 next()
}

更多beforeRouteLeave 详见官网

四、其它解决方式(未成功):

vue-router官网提供了 router.replace(location, onComplete?, onAbort?) 的方式,使得不向 history中新增记录,但是我未尝试成功,具体原因暂不知。

官网描述:

解决vue-router 切换tab标签关闭时缓存问题

我的写法:

this.$router.replace({name:'组件B名称', params: {参数}}, () => { this.warning('test!') }, () => { this.warning('test!') })

以上这篇解决vue-router 切换tab标签关闭时缓存问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
动态加载iframe
Jun 16 Javascript
JavaScript窗口功能指南之在窗口中书写内容
Jul 21 Javascript
Iframe 自动适应页面的高度示例代码
Feb 26 Javascript
Javascript 获取鼠标当前的位置实现方法
Oct 27 Javascript
浅谈js键盘事件全面控制
Dec 01 Javascript
canvas滤镜效果实现代码
Feb 06 Javascript
原生JS轮播图插件
Feb 09 Javascript
jQuery+PHP+Mysql实现抽奖程序
Apr 12 jQuery
浅谈vue中改elementUI默认样式引发的static与assets的区别
Feb 03 Javascript
在小程序中使用canvas的方法示例
Sep 17 Javascript
vue项目查看vue版本及cli版本的实现方式
Oct 24 Javascript
详解Vue的sync修饰符
May 15 Vue.js
基于 Vue 的 Electron 项目搭建过程图文详解
Jul 22 #Javascript
浅谈JS for循环中使用break和continue的区别
Jul 21 #Javascript
解决vue 给window添加和移除resize事件遇到的坑
Jul 21 #Javascript
js实现带积分弹球小游戏
Jul 21 #Javascript
在vue中created、mounted等方法使用小结
Jul 21 #Javascript
解决vue的touchStart事件及click事件冲突问题
Jul 21 #Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
Jul 21 #Javascript
You might like
coreseek 搜索英文的问题详解
2013/06/08 PHP
js替代copy(示例代码)
2013/11/27 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
初识Node.js
2015/03/20 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
2015/12/30 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
angular.js指令中的controller、compile与link函数的不同之处
2017/05/10 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
JS实现闭包中的沙箱模式示例
2017/09/07 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
JS 实现分页打印功能
2018/05/16 Javascript
使用D3.js+Vue实现一个简单的柱形图
2018/08/05 Javascript
小程序封装路由文件和路由方法(5种全解析)
2019/05/26 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
JavaScript生成一个不重复的ID的方法示例
2019/09/16 Javascript
详解小程序如何改变onLoad的执行时机
2019/11/01 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
2020/07/27 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
[01:04]不如跳舞!DOTA2新英雄玛尔斯的欢乐日常
2019/03/11 DOTA
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
2019/08/19 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
土耳其时尚潮流在线购物网站:Trendyol
2017/10/10 全球购物
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
小区门卫工作职责
2013/12/14 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
运动会广播稿100字
2014/09/14 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android