Vue的生命周期

306 阅读2分钟

🌟 Vue2 vs Vue3 组件生命周期对比表 🌟

今天给大家整理了一份超详细的 Vue2 和 Vue3 组件生命周期对比表格,还包含了父子组件生命周期执行顺序的知识点!👀
无论是面试还是实战,这些知识点都是必备的哦!💪


📊 Vue2 和 Vue3 生命周期对比表

生命周期钩子Vue2Vue3说明
创建阶段beforeCreate无(被 setup替代)Vue3 中 setup替代了 beforeCreatecreated,逻辑更集中!
created无(被 setup替代)
挂载阶段beforeMountonBeforeMount模板编译完成,但还没挂载到 DOM 上。
mountedonMounted组件挂载到 DOM 上,可以操作 DOM 啦!🎉
更新阶段beforeUpdateonBeforeUpdate数据更新时触发,但 DOM 还没重新渲染。
updatedonUpdated数据更新完成,DOM 也重新渲染了。
销毁阶段beforeDestroyonBeforeUnmount组件销毁前触发,这时候还能访问实例哦!
destroyedonUnmounted组件销毁完成,所有的事件监听和子实例都被移除啦!
新增钩子setupVue3 新增的钩子,在 beforeCreate之前执行,用于定义响应式数据和方法。

👨‍👦 父子组件生命周期执行流程图

父组件 beforeCreate
       ↓
父组件 created
       ↓
父组件 beforeMount
       ↓
子组件 beforeCreate
       ↓
子组件 created
       ↓
子组件 beforeMount
       ↓
子组件 mounted
       ↓
父组件 mounted

更新阶段:

父组件 beforeUpdate
       ↓
子组件 beforeUpdate
       ↓
子组件 updated
       ↓
父组件 updated

销毁阶段:

父组件 beforeDestroy / onBeforeUnmount
       ↓
子组件 beforeDestroy / onBeforeUnmount
       ↓
子组件 destroyed / onUnmounted
       ↓
父组件 destroyed / onUnmounted

💡 流程说明

  1. 创建阶段
    • 父组件先初始化,然后子组件初始化。
    • 父组件的 beforeCreatecreated 先执行,接着是子组件的 beforeCreatecreated
  1. 挂载阶段
    • 父组件的 beforeMount 先执行,然后子组件的 beforeMountmounted 执行。
    • 最后父组件的 mounted 执行,表示整个组件树挂载完成。
  1. 更新阶段
    • 父组件的 beforeUpdate 先触发,然后子组件的 beforeUpdateupdated 执行。
    • 最后父组件的 updated 执行,表示整个组件树更新完成。
  1. 销毁阶段
    • 父组件的 beforeDestroy / onBeforeUnmount 先触发,然后子组件的 beforeDestroy / onBeforeUnmountdestroyed / onUnmounted 执行。

    • 最后父组件的 destroyed / onUnmounted 执行,表示整个组件树销毁完成。

💡 总结

  • Vue2:经典的选项式 API,生命周期钩子直接写在 options 里。
  • Vue3:支持 Composition API,生命周期钩子更灵活,命名也更规范!
  • 父子组件顺序:父组件先创建,子组件先挂载;父组件先更新,子组件先销毁。

掌握这些知识点,Vue 开发再也不怕面试题啦!🚀