vue内置组件keep-alive事件动态缓存实例


Posted in Javascript onOctober 30, 2020

在App.vue文件中配置

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

在路由中配置

{
    path: '/backstage',
    component: resolve => require(['@/views/backstage/my'], resolve),
    meta: { keepAlive: false }
  },
  {
    path: '/backstage/info',
    component: resolve => require(['@/views/backstage/my/info'], resolve),
    meta: { keepAlive: false }
  },

在页面中利用 beforeRouteLeave 动态处理

export default {
  data() {
    return {};
  },
  methods: {},
  beforeRouteLeave(to, from, next) {
    // 设置下一个路由的 meta
    to.meta.keepAlive = false; // 不缓存
    // to.meta.keepAlive = true; // 缓存
    next();
  }
};

补充知识:vue使用keep-alive后watch事件不销毁解决方案

使用了keep-alive动态缓存页面之后,有一些很难解决的问题:

每个页面里面设置的watch监听事件,如果监听了路由的变化或者vuex的变化,在切换页面的时候watch不会被销毁,导致下一个页面重复触发上一个watch监听的对象,重复请求接口。

解决方案:

定义一个全局 mixin.js

export const mixin = {
 data () {
  return {
   activatedFlag: false
  };
 },
 mounted () {
  this.activatedFlag = true;
 },
 activated () {
  this.activatedFlag = true;
 },
 deactivated () {
  this.activatedFlag = false;
 }
};

在使用keep-alive缓存的页面引入mixin

vue内置组件keep-alive事件动态缓存实例

防止在非当前页面重复触发keep-alive缓存页面的方法

vue内置组件keep-alive事件动态缓存实例

以上这篇vue内置组件keep-alive事件动态缓存实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript基本类型详解
Nov 28 Javascript
node.js中的path.basename方法使用说明
Dec 09 Javascript
Jquery api 速查表分享
Jan 12 Javascript
JavaScript中原型和原型链详解
Feb 11 Javascript
浅谈javascript中基本包装类型
Jun 03 Javascript
javascript bom是什么及bom和dom的区别
Nov 26 Javascript
Javascript中字符串replace方法的第二个参数探究
Dec 05 Javascript
vue 虚拟dom的patch源码分析
Mar 01 Javascript
JavaScript实现图片上传并预览并提交ajax
Sep 30 Javascript
vue自动添加浏览器兼容前后缀操作
Aug 13 Javascript
jQuery实现鼠标拖拽登录框移动效果
Sep 13 jQuery
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
Javascript表单序列化原理及实现代码详解
Oct 30 #Javascript
解决Vue-cli无法编译es6的问题
Oct 30 #Javascript
Vue2.0 ES6语法降级ES5的操作
Oct 30 #Javascript
Vue自定义表单内容检查rules实例
Oct 30 #Javascript
探索node之事件循环的实现
Oct 30 #Javascript
使用TS来编写express服务器的方法步骤
Oct 29 #Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
Oct 29 #Javascript
You might like
利用php+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
php实现水仙花数示例分享
2014/04/03 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
2014/07/08 PHP
Yii框架用户登录session丢失问题解决方法
2017/01/07 PHP
Js的MessageBox
2006/12/03 Javascript
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
css样式标签和js语法属性区别
2013/11/06 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
2014/10/16 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
JavaScript创建对象的七种方式(推荐)
2017/06/26 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
2018/05/04 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
Python处理PDF及生成多层PDF实例代码
2017/04/24 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
python时间日期操作方法实例小结
2020/02/06 Python
调整Jupyter notebook的启动目录操作
2020/04/10 Python
pandas数据处理之绘图的实现
2020/06/15 Python
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
高级技校毕业生自荐信
2013/11/18 职场文书
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
2014年幼儿园植树节活动方案
2014/03/02 职场文书
县级文明单位申报材料
2014/05/23 职场文书
学校安全防火方案
2014/06/07 职场文书
2014和解协议书范文
2014/09/15 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android
MySQL 数据库范式化设计理论
2022/04/22 MySQL
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android