示例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 相关文章推荐
使用jQuery的ajax功能实现的RSS Reader 代码
Sep 03 Javascript
JQuery 获取和设置Select选项的代码
Feb 07 Javascript
jQuery调用ajax请求的常见方法汇总
Mar 24 Javascript
AngularJS之依赖注入模拟实现
Aug 19 Javascript
利用node.js实现自动生成前端项目组件的方法详解
Jul 12 Javascript
ECMAScript6变量的解构赋值实例详解
Sep 19 Javascript
AngularJS创建一个上传照片的指令实例代码
Feb 24 Javascript
js针对图片加载失败的处理方法分析
Aug 24 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
Sep 21 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
Sep 25 Javascript
Node.js学习之内置模块fs用法示例
Jan 22 Javascript
javascript实现画板功能
Apr 12 Javascript
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中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
JavaScript 学习历程和心得分享
2010/12/12 Javascript
另一个javascript小测验(代码集合)
2011/07/27 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
2014/02/23 Javascript
简单实现js页面切换功能
2021/01/10 Javascript
原生ajax处理json格式数据的实例代码
2016/12/25 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
Python对象属性自动更新操作示例
2018/06/15 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
python之文件读取一行一行的方法
2018/07/12 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
Python @property及getter setter原理详解
2020/03/31 Python
Python基于当前时间批量创建文件
2020/05/07 Python
Python 实现一个简单的web服务器
2021/01/03 Python
Lands’ End官网:经典的美国生活方式品牌
2016/08/14 全球购物
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
外语系毕业生求职自荐信
2014/04/12 职场文书
2014副镇长民主生活会个人对照检查材料思想汇报
2014/09/30 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
幼师自荐信范文
2015/03/06 职场文书
物业工程部经理岗位职责
2015/04/09 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
Java后台生成图片的完整步骤
2021/08/04 Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
2022/04/24 Java/Android