vue父子组件及mixin生命周期执行顺序

vue生命周期
image

总共分为8个阶段创建前/后,载入前/后,更新前/后,销毁前/后。

  • 创建前/后: 在beforeCreated阶段,vue实例的挂载元素$el和数据对象Data都为undefined,还未初始化。created阶段,vue实例的数据对象data有了,el还没有

  • 载入前/后:在beforeMount阶段,vue实例的$el和data都初始化了,但还是挂载之前为虚拟的dom节点,data.message还未替换。在mounted阶段,vue实例挂载完成,data.message成功渲染。

  • 更新前/后:当data变化时,会触发beforeUpdate和updated方法。

  • 销毁前/后:在执行destroy方法后,对data的改变不会再触发周期函数,说明此时vue实例已经解除了事件监听以及和dom的绑定,但是dom结构依然存在。

activated: keep-alive组件激活时调用

deactivated: keep-alive组件销毁时调用

errorCaptured: 当捕获一个来自子孙组件的错误时被调用


<keep-alive></keep-alive> 包裹动态组件时,会缓存不活动的组件实例,主要用于保留组件状态或避免重新渲染。

父子组件生命周期执行顺序

创建与挂载

父beforeCreate > 父created > 父beforeMount > 子beforeCreate > 子created > 子beforeMount > 子mounted > 父mounted

更新

父beforeUpdate > 子beforeUpdate > 子updated > 父updated

销毁

父beforeDestroy > 子beforeDestroy > 子destroyed > 父destroyed

父子组件及mixin的生命周期执行顺序

mixin的生命周期钩子在组件的生命周期钩子之前执行

在父组件中引入了mixin,生命周期顺序如下:

mixin的beforeCreate > 父beforeCreate > mixin的created > 父created > mixin的beforeMount > 父beforeMount > 子beforeCreate > 子created > 子beforeMount > 子mounted > mixin的mounted >父mounted
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容