Vue生命周期可以总共分为8个阶段

本文详细介绍了Vue.js中的八个关键生命周期钩子:beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy和destroyed。这些钩子对于理解Vue组件的行为至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Vue生命周期可以总共分为8个阶段:

beforeCreate(创建前),
created(创建后),
beforeMount(载入前),
mounted(载入后),
beforeUpdate(更新前),
updated(更新后),
beforeDestroy(销毁前),
destroyed(销毁后)

Vue2 中,组件的生命周期可以分为四个主要阶段:创建阶段、挂载阶段、更新阶段和销毁阶段。每个阶段都对应一个或多个钩子函数,开发者可以在这些钩子中执行特定的逻辑操作。 ### 创建阶段 - **beforeCreate** 在实例初始化之后,数据观测 (data observer) 和事件配置之前被调用。此时,`data` 属性和方法还未被初始化,不能访问到它们[^2]。 - **created** 在实例创建完成后被调用。此时,`data` 属性和方法已经可用,但 DOM 还未生成,因此不能访问 DOM 元素。适合进行异步请求获取数据的操作[^2]。 ### 挂载阶段 - **beforeMount** 在挂载开始之前被调用,相关的 `render` 函数首次被调用。此时模板编译/渲染还没有开始,所以还不能访问 DOM 元素。 - **mounted** 挂载完成后调用,此时可以访问真实的 DOM 元素。适合执行依赖于 DOM 的操作,如第三方库的初始化等[^2]。 ### 更新阶段 - **beforeUpdate** 数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。此时数据是最新的,但 DOM 还没有更新。可以在这个钩子中进一步更改状态,不会触发附加的重渲染过程[^2]。 - **updated** DOM 更新完成后调用。适合执行依赖于更新后的 DOM 的操作。需要注意的是,在这里修改数据可能会导致无限循环[^2]。 ### 销毁阶段 - **beforeDestroy**(Vue2) / **beforeUnmount**(Vue3) 在实例销毁之前调用。此时实例仍然完全可用,可以做一些清理工作,比如取消定时器、解绑事件监听器等[^3]。 - **destroyed**(Vue2) / **unmounted**(Vue3) 实例销毁后调用。调用后,所有的事件监听器会被移除,所有的子实例也会被销毁。适合做最后的清理工作[^3]。 以下是 Vue2 生命周期钩子函数的一个简单示例: ```javascript new Vue({ el: '#app', data: { message: 'Hello Vue!' }, beforeCreate() { console.log('beforeCreate: ', this.message); // undefined }, created() { console.log('created: ', this.message); // Hello Vue! }, beforeMount() { console.log('beforeMount'); }, mounted() { console.log('mounted'); }, methods: { updateMessage() { this.message = 'Updated Message'; } }, beforeUpdate() { console.log('beforeUpdate'); }, updated() { console.log('updated'); }, beforeDestroy() { console.log('beforeDestroy'); }, destroyed() { console.log('destroyed'); } }); ``` 通过合理利用这些钩子函数,开发者可以在组件的不同生命周期阶段执行相应的逻辑,从而更好地控制组件的行为并优化应用性能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值