文章目录

  • 概念:
  • 对生命周期函数变化:
  • 作用:
  • 参数(Props)

概念:

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

对生命周期函数变化:

被包含在 keep-alive 中创建的组件,会多出两个生命周期的钩子: activated 与 deactivated

  1. activated
    在 keep-alive 组件激活时调用
  2. deactivated
    在 keep-alive 组件离开时调用
正常生命周期:beforeRouteEnter --> created --> mounted --> updated -->destroyed
使用keepAlive后生命周期:
首次进入缓存页面:beforeRouteEnter --> created --> mounted --> activated --> deactivated
再次进入缓存页面:beforeRouteEnter --> activated --> deactivated
注:
1、这里的activated非常有用,因为页面被缓存时,created,mounted等生命周期均失效,你若想进行一些操作,那么可以在activated内完成(下面会举个栗子:列表页回到上次浏览位置)
2、activated   keep-alive组件激活时调用,该钩子在服务器端渲染期间不被调用。
3、deactivated   keep-alive组件停用时调用,该钩子在服务端渲染期间不被调用。

作用:

在组件切换过程中 把切换出去的组件保留在内存中,防止重复渲染DOM,减少加载时间及性能消耗,提高用户体验性
例如:

条件:1、列表页不可使用懒加载延迟加载数据,2、列表页需要使用keepAlive缓存beforeRouteLeave(to,from,next){  //离开页面之前将高度存储到sessionStorage。这里不建议用localStorage,因为session在关闭浏览器时会自动清除,而local则需要手动清除,有点麻烦。sessionStorage.setItem('scrollH',document.getElementById('demo').scrollTop)next()
},activated(){   //在activated生命周期内,从sessionStorage中读取高度值并设置到domif(sessionStorage.getItem('scrollH')){document.getElementById('demo').scrollTop=sessionStorage.getItem('scrollH')}
},

参数(Props)

include - 字符串或正则表达式。只有名称匹配的组件会被缓存。
exclude - 字符串或正则表达式。任何名称匹配的组件都不会被缓存。
max - 数字。最多可以缓存多少组件实例

//缓存整个项目
//如果需要缓存整个项目,则如下设置(直接包裹根router-view即可):
<template><div id="app"><keep-alive><router-view/></keep-alive></div>
</template>//结合Router,缓存部分页面
<keep-alive><router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>//路由中{path: 'goods',name: 'goods',component: Goods,meta: {keepAlive: false // 不需要缓存}},{path: 'ratings',name: 'ratings',component: Ratings,meta: {keepAlive: true  // 需要缓存}},

keep-alive:相关推荐

  1. 性能测试入门(二)转:JMeter基础之一 一个简单的性能测试

    转自:虫师博客 https://www.cnblogs.com/fnng/archive/2012/12/22/2829479.html 个人总结: 关键词:固定QPS限制,线程组设置 测试需求. 1 ...

  2. jmeter性能测试实例_实例教程:手把手教你Jmeter性能测试

    测试需求:测试20个用户访问百度,在负载达到30QPS时的平均响应时间. QPS:QueryperSecond,每秒查询率.一台查询服务器每秒能够处理的查询次数. 测试步骤: 第一步:添加线程组 线程 ...

  3. 性能测试之JMeter取样器详解:sampler

    1.取样器介绍 取样器是用来模拟用户操作的,向服务器发送请求以及接收服务器的响应数据. 取样器是在线程组内部的元件,也就是说取样器只能在线程组中添加. 取样器(Sampler)是性能测试中向服务器发送 ...

  4. TimesTen 应用层数据库缓存学习:12. 管理缓存环境

    缓存和复制代理的启停和状态查看 cache agent的作用是将监控Oracle中数据的变化,并更新到TimesTen.因此,对于只读和AWT缓存组,cache agent都是必需的. cache a ...

  5. [六点]Unity零基础实战:古迹探险(一)

    [六点]Unity零基础实战:古迹探险(一) 基本操作 工程目录 project创建文件夹,在其中创建材质,管理相关内容. 资源导入 WINDOWS中ASSET STORE中有免费资源,包括贴图,模型 ...

  6. 【pygame学习+实战】第二篇:怀旧——飞机大战

    14天学习训练营导师课程: 李宁<Python Pygame游戏开发入门与实战> 李宁<计算机视觉OpenCV Python项目实战>1 李宁<计算机视觉OpenCV P ...

  7. 爬梯:常用JDK堆栈工具

    Java虚拟机性能分析和故障排查工具 JDK命令行工具 JDK提供了很多工具供java程序员使用 D:\Java\JDK1.8.0_211\bin 想要往高级发展,就必须得熟练使用几种常用的jdk工具 ...

  8. 七夕节马上到了,有对象的,无对象的必备神奇用Python做一个烟花秀

    今天已经周三了还有三天就是七夕节了,要给女朋友买礼物怕是来不及了! 那怎么办呢?那么就给她准备一个就全城烟花视频吧. 可除了土豪,不是所有人都能在整个城市放烟花的.对于一个普通的不能再普通的我也只能想 ...

  9. JMeter基础之一个简单的性能测试

    我们了解了jmeter的一此主要元件,创建一个简单的测试计划来使用这些元件.该计划对应的测试需求: 1)测试目标网站是www.51cto.com 2)测试目的是该网站在负载达到20 QPS 时的响应时 ...

  10. 【深入Java虚拟机JVM 09】JVM垃圾回收finalize方法--对象最有一次自我拯救

    说明:文章所有内容均摘自<深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)> 即使在可达性分析算法中不可达的对象,也并非是"非死不可"的,这时候它们暂时处于& ...

最新文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(43)-工作流设计-字段分类设计
  2. django ajax上传文件
  3. Python os模块常用介绍
  4. 国家开放大学2021春1295社会心理学(本)题目
  5. 北师大计算机组成原理离线作业,北师大网络教育 离线作业 计算机组成原理(一、二、三)...
  6. onedrive-cf-index 搭建教程
  7. 高级查询(1.连接查询(对列的扩展)2.联合查询(对行的扩展)3.子查询)
  8. 2008秋-计算机软件基础-第三章- 二叉排序树
  9. 四巧工作简化法(ECRS)
  10. MySQL查询数据库日志的查询
  11. pywinauto实现微信消息自动发送
  12. dw网页制作的基本步骤_dreamweaver制作网页详细步骤(设计网站首页)
  13. us、ms、s 单位转换,不会的都是大傻子!!!
  14. html策略类文字游戏,中国唯一 一款运营超20年的网游竟然是款纯文字游戏
  15. 2021-08-22
  16. 网站更换国外服务器,备案被注销替换外国服务器?这样合理吗?
  17. 杨桃文案:卖杨桃水果怎样写文案发朋友圈,水果店杨桃活动文案
  18. 2018-8-10-win10-uwp-商业游戏-
  19. 蓝屏终止代码:WHEA_UNCORRECTABLE_ERROR
  20. 好嗨游戏:20款史上最佳的MMORPG游戏,看看有没有你知道的?

热门文章

  1. 两个例子讲清Thread的setDaemon的作用
  2. 无人机三维建模(3) 航拍实景模型
  3. 如何从窗口句柄得到窗口的指针
  4. 分布式限流的解决方案
  5. redis 在java中的实例使用场景
  6. STM32——OLED显示实验
  7. YOLOX升级 | 阿里巴巴提出YOLOX-PAI,1ms内精度无敌,超越YOLOv6、PP-YOLOE
  8. duet二重奏hp_《二重奏》Duet
  9. 书生云10亿元超融合大单的背后
  10. 2021年最新无痛低操作IDEA导入gitee项目方法