源码学习

keep-alive

  1. 初始化 缓存对象以及初始化keys
  2. 添加观察属性 include 和exclude
    1. 如果属性发生变化 清楚失效的组件实例
  3. 获取slot组件
  4. 获取组件名称
  5. 判断是否存在 include 或则 exclude属性
    1. 如果存在则拼匹配
    2. 如果匹配到不需要缓存则返回组件
  6. 判断是否存在 组件实例
    1. 存在则替换为缓存实例更新key
    2. 不存在则添加实例到缓存
    3. 如果缓存数量达到最大值则清楚第一个缓存
    4. 添加keepalive 属性为true
  7. 销毁时清空实例
  8. 初始化组件时
    1. 如果keeplive为真时处理 钩子函数prepath避免比较组件增加性能
  9. 组件挂载时根据keeplive属性处理
    1. 如果组件已经挂载 则调起激活组件钩子函数
  10. 组件销毁时如果keeplive为真时,调取去激活钩子,不销毁组件