vue中生命周期钩子函数的区别
时间: 2023-11-26 15:48:42 浏览: 98
Vue 2.0中生命周期与钩子函数的一些理解
以下是Vue中生命周期钩子函数的区别:
Vue2.x的生命周期钩子函数:
- beforeCreate:在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
- created:实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。
- beforeMount:在挂载开始之前被调用:相关的 render 函数首次被调用。
- mounted:el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子函数。实例已经完成以下的配置:编译模板,把 data 和 render 函数生成虚拟 DOM,再通过虚拟 DOM 生成真实 DOM,最后将真实 DOM 挂载到页面上。此时,组件已经出现在页面中。
- beforeUpdate:数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。可以在该钩子函数中进一步地更改状态,不会触发附加的重渲染过程。
- updated:由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子函数。当这个钩子函数被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。然而在大多数情况下,你应该避免在此期间更改状态,因为这可能会导致更新无限循环。
- beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用。
- destroyed:实例销毁之后调用。这个时候,所有的事件监听器都已经被移除,所有的子实例也都被销毁。
Vue3.x的生命周期钩子函数:
- onBeforeMount:在挂载开始之前被调用:相关的 render 函数首次被调用。
- onMounted:el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子函数。实例已经完成以下的配置:编译模板,把 data 和 render 函数生成虚拟 DOM,再通过虚拟 DOM 生成真实 DOM,最后将真实 DOM 挂载到页面上。此时,组件已经出现在页面中。
- onBeforeUpdate:数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。可以在该钩子函数中进一步地更改状态,不会触发附加的重渲染过程。
- onUpdated:由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子函数。当这个钩子函数被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。然而在大多数情况下,你应该避免在此期间更改状态,因为这可能会导致更新无限循环。
- onBeforeUnmount:实例销毁之前调用。在这一步,实例仍然完全可用。
- onUnmounted:实例销毁之后调用。这个时候,所有的事件监听器都已经被移除,所有的子实例也都被销毁。
阅读全文