示例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创建自定义表格具体实现
Feb 11 Javascript
js日期联动示例
May 02 Javascript
JavaScript中用字面量创建对象介绍
Dec 31 Javascript
Bootstrap 粘页脚效果
Mar 28 Javascript
如何使用AngularJs打造权限管理系统【简易型】
May 09 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
May 27 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
Feb 08 Javascript
JS在浏览器中解析Base64编码图像
Feb 09 Javascript
vue.js移动端tab组件的封装实践实例
Jun 30 Javascript
Node实战之不同环境下配置文件使用教程
Jan 02 Javascript
vuex 解决报错this.$store.commit is not a function的方法
Dec 17 Javascript
vue-路由精讲 二级路由和三级路由的作用
Aug 06 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实现与ASP Banner组件相似的类
2006/10/09 PHP
escape unescape的php下的实现方法
2007/04/27 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
php生成word并下载代码实例
2019/03/15 PHP
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
jQuery ajax dataType值为text json探索分享
2013/09/23 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
Angularjs的启动过程分析
2017/07/18 Javascript
nodejs对express中next函数的一些理解
2017/09/08 NodeJs
解决vue-cli3 使用子目录部署问题
2018/07/19 Javascript
Layui 数据表格批量删除和多条件搜索的实例
2019/09/04 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
使用Mock.js生成前端测试数据
2020/12/13 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
[01:02:05]LGD vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python中unittest用法实例
2014/09/25 Python
Python模拟三级菜单效果
2017/09/11 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
python读取并写入mat文件的方法
2019/07/12 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
社区文化建设方案
2014/05/02 职场文书
财务负责人任命书
2014/06/06 职场文书
管理标语大全
2014/06/24 职场文书
2016年教师党员创先争优承诺书
2016/03/24 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL
SpringBoot详解执行过程
2022/07/15 Java/Android