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