2023-01-18 18:52:16
Vue3父子组件生命周期执行顺序如下:
一、初始化渲染阶段父组件:
beforeCreate
created
beforeMount
子组件:
beforeCreate
created
beforeMount
继续子组件(完成后回到父组件):
mounted
父组件(子组件挂载完成后):
mounted
注意:在Vue3中,子组件的beforeMount和mounted钩子函数会在父组件对应的钩子函数之前执行(但相对于父组件的整个挂载过程来说,子组件的挂载是在父组件的beforeMount之后开始的,并在父组件的mounted之前完成)。这是因为在Vue3中,子组件的setup函数执行时会先于父组件的beforeMount和mounted钩子函数。
二、父组件更新阶段当父组件发生更新时(例如,父组件的数据发生变化导致重新渲染),子组件的生命周期执行顺序为:
父组件:
beforeUpdate
子组件:
beforeUpdate
updated
父组件(子组件更新完成后):
updated
当仅子组件发生更新时(例如,子组件内部的数据或props发生变化导致重新渲染),子组件的生命周期执行顺序为:
beforeUpdate
updated
当父组件销毁时(例如,父组件被从DOM中移除或切换为不可见状态),子组件的生命周期执行顺序为:
父组件:
beforeUnmount
子组件:
beforeUnmount
unmounted
父组件(子组件销毁完成后):
unmounted
注意:在Vue3中,beforeDestroy和destroyed生命周期钩子已卖正被替换为beforeUnmount和unmounted。
五、其他注意事项了解父子组件的生命周期执行顺序对于优化和调试Vue3应用至关重要,它有助于开发者更好地理解组件之间的数据传递和交互方式。同时,也需要注意Vue3中生命周期钩子函数的改变以及新的API的使用方式。