Keep-Alive
让组件"活"得更久
干什么用的?
缓存不活动的组件实例,避免频繁销毁和重建。
适用场景
- Tab 切换:A、B、C 切换,保持之前状态
- 列表详情页:返回列表时,停留在刚才滚动的位置
生命周期
被缓存的组件不会触发 created/mounted/unmounted。
有专属生命周期:
- activated:被激活(进入)时
- deactivated:被停用(离开)时
配置参数
- include:只有匹配 name 的才缓存(字符串/正则/数组)
- exclude:匹配 name 的不缓存
- max:最大缓存数量
缓存策略:LRU
最近最少使用算法:
- 命中缓存 → 移到 keys 数组最后(最近用过)
- 未命中且已满 → 销毁第一个(最早用的),放入新组件
注意点
include 匹配的是组件的 name 选项,不是路由 name。组件必须显式声明 name 才能被匹配。
总结
| 特性 | 说明 |
|---|
| 作用 | 缓存组件实例 |
| 生命周期 | activated / deactivated |
| 策略 | LRU 最近最少使用 |
| 匹配 | 组件的 name |