Keep-Alive

让组件"活"得更久

干什么用的?

缓存不活动的组件实例,避免频繁销毁和重建。

适用场景

  • Tab 切换:A、B、C 切换,保持之前状态
  • 列表详情页:返回列表时,停留在刚才滚动的位置

生命周期

被缓存的组件不会触发 created/mounted/unmounted。

有专属生命周期:

  • activated:被激活(进入)时
  • deactivated:被停用(离开)时

配置参数

  • include:只有匹配 name 的才缓存(字符串/正则/数组)
  • exclude:匹配 name 的缓存
  • max:最大缓存数量

缓存策略:LRU

最近最少使用算法:

  1. 命中缓存 → 移到 keys 数组最后(最近用过)
  2. 未命中且已满 → 销毁第一个(最早用的),放入新组件

注意点

include 匹配的是组件的 name 选项,不是路由 name。组件必须显式声明 name 才能被匹配。

总结

特性说明
作用缓存组件实例
生命周期activated / deactivated
策略LRU 最近最少使用
匹配组件的 name