如何简单理解vue生命周期以及父子组件的生命周期顺序

本文详细解释了Vue组件的四个主要生命周期阶段:创建(包括beforeCreated和created)、挂载(beforeMounted和mounted)、更新(beforeUpdate和updated)以及销毁(beforeDestroy和destroyed)。同时阐述了父组件与子组件在不同生命周期阶段的执行顺序。
摘要由CSDN通过智能技术生成

1. 四大生命周期理解:

四个分别:创建 挂载 更新 销毁。其中创建和挂载是牵涉到vue模版渲染的主要过程。每一个生命周期又有触发之前 和 完成之后两个钩子。

其实也可以理解成组件有三种会发生的情况:渲染(创建和挂载)更新和销毁。

对照api钩子就是before created created 、 deforemounted mounted 、before updata updated、before destroy destroyed

2.四大周期都做了”那些事“:

创建:初始化vue选项,data, method, computed, watch

挂载:将dom展示在html上

更新:dom更新

销毁:dom 组件销毁 

其中每个周期的before可以理解成,要完成对应的那些事之前的准备过程。

3.父组件 和 子组件生命周期的顺序:

父子生命周期顺序的问题其实就是父子的渲染循序。并且vue 本质是js代码,逻辑执行顺序是自上到下,渲染dom是由内到外

我们从三中情况分析生命周期顺序。

渲染过程中:

所以先执行 父组件的创建,然后在挂载之前,检测到了有子组件,那么子组件需要先进行渲染,接着子组件的创建,子组件的挂载,子组件渲染结束,接着父组件渲染结束。

父 before created -> 父created -> 父before mounted -> 子before created -> 子created ->  子before mounted -> 子mounted -> 父mounted

更新过程:

父准备更新之前 发现有子组件,那么先更新子组件,子更新结束,再更新父。

父before updata -> 子before updata -> 子updated -> 父updated

销毁过程:

同更新一样。😄

Vue生命周期函数指的是在组件实例化、渲染、更新和销毁等不同阶段执行的一些特定函数。下面是 Vue 组件生命周期函数及其执行顺序: 1. beforeCreate:在实例创建之前被调用。此时组件的数据和方法都还未初始化。 2. created:在实例创建完成之后被调用。此时组件的数据已经初始化,但 DOM 还未渲染。 3. beforeMount:在组件挂载到 DOM 之前被调用。此时模板已经编译完成,但还未挂载到页面中。 4. mounted:在组件挂载到 DOM 后被调用。此时组件已经被渲染并插入到页面中,可以进行 DOM 操作。 5. beforeUpdate:在数据更新之前被调用。此时组件还未重新渲染,但数据已经更新。 6. updated:在数据更新之后被调用。此时组件已经重新渲染,可以进行 DOM 操作。 7. beforeDestroy:在组件销毁之前被调用。此时组件还存在,可以进行一些清理工作。 8. destroyed:在组件销毁之后被调用。此时组件已经从 DOM 中移除,事件监听和定时器等资源都已经被销毁。 对于父子组件,它们的生命周期函数的执行顺序如下: 1. 父组件的 beforeCreate 和 created 钩函数执行。 2. 组件的 beforeCreate 和 created 钩函数执行。 3. 组件的 beforeMount 钩函数执行。 4. 组件的 mounted 钩函数执行。 5. 父组件的 beforeMount 钩函数执行。 6. 父组件的 mounted 钩函数执行。 7. 数据更新时,执行父组件的 beforeUpdate 钩函数,然后执行组件的 beforeUpdate 钩函数,再执行组件的 updated 钩函数,最后执行父组件的 updated 钩函数。 8. 组件销毁时,执行父组件的 beforeDestroy 钩函数,然后执行组件的 beforeDestroy 钩函数,最后执行组件的 destroyed 钩函数,再执行父组件的 destroyed 钩函数。 这是 Vue 组件生命周期函数的一般执行顺序,但在实际开发中可能会有特殊情况,需要根据具体需求来使用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值