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:void(0)使用探讨
Aug 27 Javascript
js加入收藏以及使用Jquery更改透明度
Jan 26 Javascript
创建js对象和js类的方法汇总
Dec 24 Javascript
javascript实现连续赋值
Aug 10 Javascript
jQuery入门基础知识学习指南
Aug 14 Javascript
jQuery 限制输入字符串长度
Jun 20 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
Dec 06 Javascript
微信小程序之仿微信漂流瓶实例
Dec 09 Javascript
Bootstrap3 内联单选和多选框
Dec 29 Javascript
JavaScript函数基础详解
Feb 03 Javascript
JavaScript如何获取到导航条中HTTP信息
Oct 10 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
Apr 15 Javascript
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下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
php实用代码片段整理
2016/11/12 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
jquery $.ajax入门应用二
2008/11/19 Javascript
JavaScript学习笔记(十)
2010/01/17 Javascript
50款非常棒的 jQuery 插件分享
2012/03/29 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
2013/01/09 Javascript
原始XMLHttpRequest方法详情回顾
2013/11/28 Javascript
FireBug 调试JS入门教程 如何调试JS
2013/12/23 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
JS实现DIV容器赋值的方法
2015/12/14 Javascript
jquery对象访问是什么及使用方法介绍
2016/05/03 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
nodejs dgram模块广播+组播的实现示例
2019/11/04 NodeJs
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
[08:54]《一刀刀一天》之DOTA全时刻18:十九支奔赴西雅图队伍全部出炉
2014/06/04 DOTA
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
对Python中9种生成新对象的方法总结
2018/05/23 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
opencv实现图像平移效果
2021/03/24 Python
学校四群教育实施方案
2014/06/12 职场文书
教师节寄语2015
2015/03/23 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
学术会议通知范文
2015/04/15 职场文书