Vue中的生命周期(钩子函数)
时间: 2024-04-25 22:25:30 浏览: 127
Vue中的生命周期钩子函数分为8个阶段,分别是:
1. beforeCreate:在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
2. created:实例创建完成之后被调用。此时实例已经完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前尚不可用。
3. beforeMount:在挂载开始之前被调用。相关的 render 函数首次被调用。
4. mounted:el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。
5. beforeUpdate:数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。
6. updated:由于数据更改导致的虚拟 DOM 重新渲染和打补丁完成之后调用该钩子。
7. beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用。
8. destroyed:实例销毁后调用。此时,所有绑定和实例的指令都已经解绑,所有的事件监听器都已经被移除。
这些生命周期钩子函数可以在组件的选项中定义,用于在不同阶段执行相应的逻辑操作。
相关问题
vue中生命周期钩子函数的区别
以下是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:实例销毁之后调用。这个时候,所有的事件监听器都已经被移除,所有的子实例也都被销毁。
vue的生命周期钩子函数
Vue的生命周期钩子函数是在Vue实例的不同生命周期阶段自动执行的函数。根据引用和引用的内容,Vue的生命周期钩子函数包括以下八个函数:
1. beforeCreate:在Vue实例初始化之前调用。
2. created:在Vue实例初始化之后调用。
3. beforeMount:在将Vue实例挂载到DOM树之前调用。
4. mounted:在将Vue实例挂载到DOM树之后调用。
5. beforeUpdate:在数据更新之前调用。
6. updated:在数据更新之后调用。
7. beforeDestroy:在Vue实例销毁之前调用。
8. destroyed:在Vue实例销毁之后调用。
这些生命周期钩子函数提供了在不同阶段添加自定义代码的机会,以便在特定的生命周期状态下执行相应的操作。每当Vue实例处于不同的生命周期时,对应的函数就会被触发调用。这样,开发者可以在特定的生命周期阶段执行自己的逻辑,以满足不同的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Vue生命周期总结(四个阶段,八个钩子函数)](https://blog.csdn.net/hello_woman/article/details/127507138)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [一文带你弄懂Vue八大生命周期钩子函数](https://blog.csdn.net/luo1831251387/article/details/117658191)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文