示例vue 的keep-alive缓存功能的实现


Posted in Javascript onDecember 13, 2018

本篇文章主要介绍了vue 的keep-alive缓存功能的实现,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。

示例vue 的keep-alive缓存功能的实现

<keep-alive>是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。

<keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。和 <transition> 相似,<keep-alive> 是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在父组件链中。

prop:

  • include: 字符串或正则表达式。只有匹配的组件会被缓存。
  • exclude: 字符串或正则表达式。任何匹配的组件都不会被缓存。

Vue 实现组件信息的缓存

当我们在开发vue的项目过程中,避免不了在路由切换到其他的component再返回后该组件数据会重新加载,处理这种情况我们就需要用到keep-alive来缓存vue的组件信息,使其不再重新加载。

一、在app.vue里

<keep-alive>
 <router-view></router-view>
</keep-alive>

但是这种情况会对所有的组件进行缓存,不能达到单个组件缓存的效果。

那么我们给部分组件加上,实现方法如下:

在app.vue

<!--这里是需要keepalive的-->
<keep-alive>
 <router-view v-if="$route.meta.keepAlive"></router-view>
<keep-alive>
 
<!-- 这里不会被keepAlive -->
 
<router-view v-if="!$route.meta.keepAlive"></router-view>

二、 在路由的index.js页面里

{
 path: '',
 name: '',
 component: '',
 meta: {keepAlive: true}  // 这个是需要keepalive的
},
{
 path: '',
 name: '',
 component: ,
 meta: {keepAlive: false} // 这是不会被keepalive的
}

这就实现了部分组件的缓存功能

如果缓存的组件想要清空数据或者执行初始化方法,在加载组件的时候调用activated钩子函数,如下:

activated: function () {
 this.data = ‘'
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS与框架页的操作代码
Jan 17 Javascript
CSS3,HTML5和jQuery搜索框集锦
Dec 02 Javascript
JavaScript前端图片加载管理器imagepool使用详解
Dec 29 Javascript
javascript下拉框选项单击事件的例子分享
Mar 04 Javascript
javascript实现起伏的水波背景效果
May 16 Javascript
js 实现数值的千分位及保存小数方法(推荐)
Aug 01 Javascript
JS获取短信验证码倒计时的实现代码
May 22 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
Jul 02 Javascript
AngularJS select设置默认值的实现方法
Aug 25 Javascript
Angular中的$watch方法详解
Sep 18 Javascript
详解微信小程序支付流程与梳理
Jul 16 Javascript
JQuery中DOM节点的操作与访问方法实例分析
Dec 23 jQuery
Element UI框架中巧用树选择器的实现
Dec 12 #Javascript
vue-cli中安装方法(图文详细步骤)
Dec 12 #Javascript
新版小程序登录授权的方法
Dec 12 #Javascript
加快Vue项目的开发速度的方法
Dec 12 #Javascript
关于自定义Egg.js的请求级别日志详解
Dec 12 #Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
Dec 12 #Javascript
d3绘制基本的柱形图的实现代码
Dec 12 #Javascript
You might like
php strtotime 函数UNIX时间戳
2009/01/14 PHP
PHP 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
2018/03/31 PHP
js 与或运算符 || &amp;&amp; 妙用
2009/12/09 Javascript
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
JavaScript日历实现代码
2010/09/12 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
Vue中使用方法、计算属性或观察者的方法实例详解
2018/10/31 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
python使用append合并两个数组的方法
2015/04/28 Python
Python单例模式实例详解
2017/03/01 Python
Python使用内置json模块解析json格式数据的方法
2017/07/20 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
python flask中动态URL规则详解
2019/11/22 Python
python 实现的IP 存活扫描脚本
2020/12/10 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
爱普生美国官网:Epson美国
2018/11/05 全球购物
异常和异常类的概念
2014/09/12 面试题
少先队学雷锋活动总结范文
2014/03/09 职场文书
毕业生实习证明
2014/09/19 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
2015年三万活动总结
2015/03/25 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python
详解mysql三值逻辑与NULL
2021/05/19 MySQL
在redisCluster中模糊获取key方式
2021/07/09 Redis
Win10防火墙白名单怎么设置?Win10添加防火墙白名单方法
2022/04/06 数码科技
vue中data里面的数据相互使用方式
2022/06/05 Vue.js