当前位置: 首页 > java >正文

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

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


📑 目录

  1. 什么是生命周期
  2. 生命周期流程图
  3. 常见生命周期钩子
    • beforeCreate
    • created
    • beforeMount
    • mounted
    • beforeUpdate
    • updated
    • beforeDestroy
    • destroyed
  4. 使用场景
  5. 小结

什么是生命周期

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

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

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


生命周期流程图

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

beforeCreate -> created -> beforeMount -> mounted -> beforeUpdate -> updated -> beforeDestroy -> destroyed

在这里插入图片描述


常见生命周期钩子

beforeCreate

组件实例刚创建,还没有 datamethods
适合做一些低级初始化。

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

created

实例已经创建好,data 已经初始化完成。
可以进行 数据请求、定时器设置等。

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

beforeMount

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

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

mounted

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

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

beforeUpdate

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

beforeUpdate() {console.log('数据即将更新')
}

updated

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

updated() {console.log('页面更新完成')
}

beforeDestroy

实例即将销毁。
适合清除定时器、解绑事件。

beforeDestroy() {console.log('组件即将销毁')clearInterval(this.timer)
}

destroyed

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

destroyed() {console.log('组件已销毁')
}

使用场景

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

小结

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

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

http://www.xdnf.cn/news/19537.html

相关文章:

  • Unity核心概念③:Inspector窗口可编辑变量
  • C++/QT day3(9.1)
  • 深度学习中常用的激活函数
  • 关系型数据库——GaussDB的简单学习
  • Spring Boot 和 Spring Cloud 的原理和区别
  • 对于牛客网—语言学习篇—编程初学者入门训练—复合类型:BC141 井字棋及BC142 扫雷题目的解析
  • Composefile配置
  • 瑞芯微RK3576平台FFmpeg硬件编解码移植及性能测试实战攻略
  • 查看LoRA 哪个适配器处于激活状态(67)
  • 单片机元件学习
  • 设计模式:代理模式(Proxy Pattern)
  • 有N个控制点的三次B样条曲线转化为多段三阶Bezier曲线的方法
  • 【开题答辩全过程】以 基于微信小程序的校园二手物品交易平台的设计与实现为例,包含答辩的问题和答案
  • 8K4K图像评估平台
  • 【系统架构设计(七)】 需求工程之:面向对象需求分析方法:统一建模语言(UML)(下)
  • 像信号处理一样理解中断:STM32与RK3399中断机制对比及 Linux 驱动开发实战
  • 数组(4)
  • QMainWindow使用QTabWidget添加多个QWidget
  • 【数学建模学习笔记】数据标准化
  • LeetCode刷题记录----74.搜索二维矩阵(Medium)
  • 构建无广告私人图书馆Reader与cpolar让电子书库随身携带
  • 站在巨人的肩膀上:gRPC通过HTTP/2构建云原生时代的通信标准
  • Unity游戏打包——打包流程
  • 【C++】类型转换详解:显式与隐式转换的艺术
  • Vue2存量项目国际化改造踩坑
  • Ansible变量的定义与使用
  • 安卓11 12系统修改定制化_____常用的几种修改固件 实现指定 “运行内存” 显示
  • 【lucene】 中的impactsenum与impactsdisi有啥区别?
  • 拥抱智能高效翻译 ——8 款视频翻译工具深度测评
  • (附源码)留言系统的设计与实现