知识篇:(十二)Vue2 生命周期详解:一文掌握那些“神秘”的特殊生命周期

Vue2 生命周期详解:一文掌握那些“神秘”的特殊生命周期

在 Vue2 中,每个组件都像是有自己的生命,从“出生”到“成长”,再到“死亡”,都会经历一系列的过程。Vue2 把这些过程称为“生命周期钩子”或者“生命周期函数”。当我们理解这些钩子函数时,就可以在合适的时间“插手”组件的生命周期,进行一些自定义操作。

今天,我们不仅会详解 Vue2 的生命周期,还会重点介绍几个“特殊”的生命周期钩子——它们或许并不常见,但却非常有用。带上好奇心,跟我一起深入探索吧!

在这里插入图片描述

1. Vue2 生命周期概览

首先,什么是组件的生命周期?简单来说,Vue2 中每个组件从创建、渲染、更新到销毁,都有固定的流程,而 Vue 允许你在不同阶段执行特定的代码。

下面是 Vue2 生命周期的基本流程图:

  1. 创建阶段:组件被创建,但是还没有插入 DOM。
  2. 挂载阶段:组件已经被挂载到 DOM 上,可以开始交互。
  3. 更新阶段:组件的数据发生变化,重新渲染。
  4. 销毁阶段:组件即将被销毁,相关的事件、数据绑定等会被清理。

Vue2 的生命周期钩子函数

阶段 钩子函数 描述
创建前 beforeCreate 组件实例初始化之前
创建后 created 组件实例初始化完成,数据已可用
挂载前 beforeMount 挂载到 DOM 之前
挂载后 mounted 挂载到 DOM 之后
更新前 beforeUpdate 数据变化引发更新之前
更新后 updated 重新渲染和更新 DOM 之后
销毁前 beforeDestroy 组件实例销毁之前
销毁后 destroyed 组件实例销毁之后

Vue2 的生命周期钩子函数,可以让你在组件的不同阶段执行代码。接下来,我为你详细讲解每个生命周期钩子的作用和使用场景:

1. 创建前 (beforeCreate)

描述:这是组件实例初始化之前的钩子,Vue 的 datamethods 等都还没有被创建,你无法访问这些属性或方法。

场景:因为这个阶段所有的实例属性还未初始化,所以一般很少单独使用这个钩子。更多情况下是用于与外部库或插件的初始化时进行绑定。

beforeCreate() {
   
  console.log('组件正在创建,还无法访问 this 的数据');
}

2. 创建后 (created)

描述:组件实例创建完成,这时候可以访问组件的 datamethodscomputed 等属性。组件还未挂载到 DOM 上。

场景:常用于获取数据或执行异步请求。这时数据已经准备好了,但 DOM 还未生成,因此你可以在这里处理数据而不用担心页面还没渲染好。

created() {
   
  console.log('组件创建完成,可以访问 this 数据');
  this.fetchData(); // 可以进行异步数据请求
}

3. 挂载前 (beforeMount)

描述:组件将要挂载到 DOM 上,但还没有实际插入。

场景:此时组件的模板已经在内存中编译好,但尚未插入到页面中,几乎不太常用这个钩子。

beforeMount() {
   
  console.log('组件即将挂载,模板已在内存中编译好');
}

4. 挂载后 (mounted)

描述:组件已经挂载到 DOM 上,此时可以操作真实的 DOM 元素。

场景:这是与 DOM 操作有关的最佳时机。如果你需要用第三方库(如 jQuery)或手动操作 DOM,通常会在 mounted 钩子中进行。

mounted() {
   
  console.log('组件挂载完成,可以操作 DOM');
  this.$refs.myDiv.innerText = 'Hello, DOM!';
}

5. 更新前 (beforeUpdate)

描述:组件数据变化即将引发 DOM 更新,但此时 DOM 还未更新。

场景:在数据改变后但 DOM 还未重新渲染时,如果你需要在更新前获取旧的 DOM 状态,可以使用这个钩子。

beforeUpdate() {
   
  console.log('数据变化了,但 DOM 还未更新');
}

6. 更新后 (updated)

描述:组件数据变化引发的 DOM 重新渲染完成,页面已经更新。

场景:当你需要在数据改变并重新渲染后,操作或访问更新后的 DOM 时,可以使用这个钩子。

updated() {
   
  cons
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈探索者chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值