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 相关文章推荐
prototype 1.5相关知识及他人笔记
Dec 16 Javascript
js确定对象类型方法
Mar 30 Javascript
jQuery DOM插入节点操作指南
Mar 03 Javascript
JQuery动态添加和删除表格行的方法
Mar 09 Javascript
node学习记录之搭建web服务器教程
Feb 16 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
May 26 Javascript
React Native中TabBarIOS的简单使用方法示例
Oct 13 Javascript
在vue中实现简单页面逆传值的方法
Nov 27 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
Aug 25 Javascript
如何实现双向绑定mvvm的原理实现
May 28 Javascript
vue开发拖拽进度条滑动组件
Sep 21 Javascript
jquery将json转为数据字典的实例代码
Oct 11 jQuery
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 Try Catch异常测试
2009/03/01 PHP
php操作SVN版本服务器类代码
2011/11/27 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
JQuery从头学起第一讲
2010/07/04 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
2017/11/09 Javascript
vue实现登录后页面跳转到之前页面
2018/01/07 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
2018/09/21 Javascript
angular 用Observable实现异步调用的方法
2018/12/27 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
python获得图片base64编码示例
2014/01/16 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
Django项目使用CircleCI的方法示例
2019/07/14 Python
Django 开发调试工具 Django-debug-toolbar使用详解
2019/07/23 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
Farfetch中文官网:奢侈品牌时尚购物平台
2020/03/15 全球购物
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
教师个人剖析材料
2014/02/05 职场文书
经典团队口号
2014/06/06 职场文书
大班上学期个人总结
2015/02/13 职场文书
2016年“我们的节日·端午节”活动总结
2016/04/01 职场文书