vue2和vue3 对比

337 阅读2分钟

vue2和vue3 对比

生命周期

生命周期钩子Vue 2Vue 3说明
beforeCreate✔️✔️实例初始化之后,数据观测和事件配置之前调用。
created✔️✔️实例创建完成后调用,此时数据已被观测。
beforeMount✔️✔️在挂载开始之前被调用,相关的 render 函数首次被调用。
mounted✔️✔️实例被挂载后调用,相关的 DOM 已被插入。
beforeUpdate✔️✔️数据更新时调用,发生在虚拟 DOM 重新渲染之前。
updated✔️✔️数据更新后调用,虚拟 DOM 重新渲染后。
beforeDestroy✔️✔️(改为 beforeUnmount实例销毁之前调用,清理工作。
destroyed✔️✔️(改为 unmounted实例销毁后调用,清理工作已完成。
activated✔️✔️仅在使用 <keep-alive> 时调用,激活组件。
deactivated✔️✔️仅在使用 <keep-alive> 时调用,停用组件。
beforeRouteEnter✔️✔️路由进入前调用(需使用 vue-router)。
beforeRouteUpdate✔️✔️路由更新前调用(需使用 vue-router)。
beforeRouteLeave✔️✔️路由离开前调用(需使用 vue-router)。

vue3 hooks

在 Vue 3 中,Composition API 引入了一些新的生命周期钩子(hooks),这些钩子与 Vue 2 的选项式 API 的生命周期钩子略有不同。以下是 Vue 3 中的生命周期钩子与其说明的表格输出:

生命周期钩子用途说明
setup组件的初始化逻辑组件实例创建前调用,设置响应式数据、计算属性等。
onBeforeMount组件挂载前组件挂载之前调用,适合进行一些准备工作。
onMounted组件挂载后组件挂载完成后调用,可以进行 DOM 操作。
onBeforeUpdate组件更新前数据更新前调用,适合在虚拟 DOM 渲染前进行的操作。
onUpdated组件更新后数据更新后调用,适合执行依赖于更新的操作。
onBeforeUnmount组件卸载前组件销毁前调用,适合清理工作。
onUnmounted组件卸载后组件销毁后调用,适合执行清理操作。
onActivated仅在 <keep-alive> 中使用组件激活时调用,适合执行激活逻辑。
onDeactivated仅在 <keep-alive> 中使用组件停用时调用,适合执行停用逻辑。
onErrorCaptured错误捕获钩子捕获子组件的错误,适合错误处理和日志记录。

说明

  • setup:是 Composition API 的核心,所有响应式状态和计算属性都在这里定义。
  • onBeforeMountonMounted:与 Vue 2 的钩子类似,用于处理组件的挂载过程。
  • onBeforeUpdateonUpdated:用于处理组件更新时的逻辑。
  • onBeforeUnmountonUnmounted:用于处理组件卸载时的清理工作。
  • onActivatedonDeactivated:仅在使用 <keep-alive> 时才会触发,适合处理组件的激活与停用。
  • onErrorCaptured:用于捕获并处理子组件中的错误。