keep-alive原理
# 作用
包裹动态组件时,会缓存不活动的组件实例
# 两个钩子
activated 被 keep-alive 缓存的组件激活时调用。
deactivated 被 keep-alive 缓存的组件停用时调用。
# 三个属性
include - 字符串或正则表达式。只有名称匹配的组件会被缓存。
exclude - 字符串或正则表达式。任何名称匹配的组件都不会被缓存。
max - 数字。最多可以缓存多少组件实例
# 原理
使用了 LRU 的缓存策略。(Least Recently Used 最近最少使用)
LRU 的核心思想是如果数据最近被访问过,那么将来被访问的几率也更高,优先淘汰最近没有被访问到的数据
算法:
this.keys 数组用来存储数据
将新数据从尾部插入到 this.keys 中
每当缓存命中(即缓存数据被访问),则将数据移到 this.keys 的尾部;
当 this.keys 满的时候,将头部的数据丢弃;
更新时间: 5/28/2021, 10:53:25 AM