【Vue2 ✨】Vue2 入门之旅(四):生命周期钩子

前三篇我们学习了 Vue 的基础、模板语法和数据相关知识。本篇将介绍 Vue2 的 生命周期钩子,理解组件从"出生"到"销毁"的全过程。


目录

  1. 什么是生命周期
  2. 生命周期流程图
  3. 常见生命周期钩子
  4. 使用场景
  5. 小结

什么是生命周期

Vue 实例从创建到销毁,会经历一系列过程:

  • 初始化数据
  • 挂载 DOM
  • 更新数据
  • 卸载组件

在这些关键时刻,Vue 会触发 生命周期钩子函数,让开发者在合适的时机执行逻辑。


生命周期流程图

Vue2 生命周期大致流程如下:

复制代码
beforeCreate -> created -> beforeMount -> mounted -> beforeUpdate -> updated -> beforeDestroy -> destroyed

常见生命周期钩子

beforeCreate

组件实例刚创建,还没有 data 和 methods。

适合做一些低级初始化。

js 复制代码
beforeCreate() {
  console.log('组件刚创建,还没有数据')
}

created

实例已经创建好,data 已经初始化完成。

可以进行 数据请求、定时器设置等。

js 复制代码
created() {
  console.log('组件创建完成,可以访问 data:', this.title)
  // this.fetchData()
}

beforeMount

模板编译完成,但尚未挂载到 DOM。

js 复制代码
beforeMount() {
  console.log('模板已编译,但还没挂载到页面')
}

mounted

组件挂载完成,可以操作 DOM。

js 复制代码
mounted() {
  console.log('组件挂载完成,可以操作 DOM')
  const el = this.$el.querySelector('p')
  console.log(el.innerText)
}

beforeUpdate

数据即将更新,界面还没刷新。

js 复制代码
beforeUpdate() {
  console.log('数据即将更新')
}

updated

数据更新完成,界面已重新渲染。

js 复制代码
updated() {
  console.log('页面更新完成')
}

beforeDestroy

实例即将销毁。

适合清除定时器、解绑事件。

js 复制代码
beforeDestroy() {
  console.log('组件即将销毁')
  clearInterval(this.timer)
}

destroyed

实例销毁完成,所有绑定解除。

js 复制代码
destroyed() {
  console.log('组件已销毁')
}

使用场景

  • created:发送请求、初始化数据
  • mounted:操作 DOM、第三方库初始化
  • beforeDestroy:资源回收,清除定时器、事件解绑

小结

  1. Vue 生命周期包含 创建 → 挂载 → 更新 → 销毁 四个阶段。
  2. 常见钩子:
    • created:数据就绪,可以发请求
    • mounted:DOM 已挂载,可以操作界面
    • beforeDestroy:做清理工作
  3. 正确利用生命周期钩子,可以让代码更加清晰、职责分明。

📚 下一篇文章,我们将学习 组件化开发,深入理解 Vue 的模块化思想。

相关推荐
paopaokaka_luck8 小时前
宠物门店经营管理系统(销售与库存联动、进货自动记账、 退换与退款关联、员工个人业绩、ECharts 经营分析、滞销识别与客户分层、宠物档案年龄计算)
前端·javascript·spring boot·mysql·echarts·mybatis·1024程序员节
小成2023032026511 小时前
C++~07补充
开发语言·c++
鶴哥只手遮天12 小时前
jQuery 4.0 源码架构与工程实践-第 10 章 尺寸、几何与显隐
前端·javascript·jquery
2401_8858850414 小时前
国际语音C#接口怎么写?.NET环境下实现国际语音验证码批量下发
开发语言·c#·.net
米米商聊14 小时前
图标能点,按钮就可用了吗?键盘、名称与收藏状态
前端·javascript
程序猿乐锅14 小时前
【从0-1学习Python | 第七篇】Python 面向对象基础
开发语言·笔记·后端·python·学习·1024程序员节
Wang's Blog14 小时前
Java 项目实战: 交友项目 - 查询圈子个人动态:查询我的动态需求分析
java·开发语言·交友
凯瑟琳.奥古斯特14 小时前
力扣1016高效解法:剪枝优化技巧
开发语言·c++·算法·leetcode·职场和发展
坤坤子吖15 小时前
C++继承:友元、静态成员、多继承与组合
开发语言·c++·笔记·学习·1024程序员节