1、父子组件生命周期钩子函数执行顺序表
| 父组件 | 子组件 |
|---|---|
| 1.父-beforeCreate | 4.子-beforeCreate |
| 2.父-created | 5.子-created |
| 3.父-beforeMount | 6.子-beforeMount |
| 8.父-mounted | 7.子-mounted |
| 9.父-beforeUpdate | 10.子-beforeUpdate |
| 12.父-updated | 11.子-updated |
| 13.父-beforeDestroy | 14.子-beforeDestroy |
| 16.父-destroyed | 15.子-destroyed |
2、父子组件生命周期钩子函数执行顺序的具体执行过程
-
加载渲染过程
- 父-beforeCreate → 父-created→ 父-beforeMount → 子-beforeCreate → 子-created → 子-beforeMount → 子-mounted → 父-mounted
-
子组件更新过程
- 父-beforeUpdate → 子-beforeUpdate→ 父-updated → 子-updated
-
父组件更新过程
- 父-beforeUpdate → 父-updated
-
销毁过程
- 父-beforeDestroy → 子-beforeDestroy → 子-destroyed → 父-destroyed
3、单一组件钩子执行顺序
beforeCreate → created → beforeMount → mounted → beforeUpdate → updated → activated → deactivated → beforeDestroy→ destroyed → errorCaptured
补充组件缓存知识:
activated(激活)和deactivated(失活)是组件缓存特有的钩子- 匹配组件缓存有两个值:
include(包含) 和exclude(不包含) - 使用方法:
<keep-alive include="name名"> <router-view><router-view> <keep-alive> - 作用:组件频繁切换会导致性能浪费,缓存后可以不用重新创建
4、简易钩子执行顺序
父create->子created->子mounted->父mounted