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

Vue2的生命周期

事件循环和渲染

概述

Vue2的生命周期主要是指Vue实例从创建、挂载、更新到销毁的整个过程。并为每个过程提供了对应的生命周期钩子函数,允许在不同阶段执行自定义任务,从而更好地控制组件的行为和资源管理。

解析顺序

浏览器先于Vue解析html文件,所以在Vue实例创建前就已经解析好了真实dom树,但插值表达式等Vue特有语法作为普通文本显示。直到挂载完成后原始dom元素才会被虚拟dom元素替换

四大生命周期

创建阶段(实例初始化)

beforeCreate
  • 实例还未初始化,数据观测(响应式数据)和方法及事件监听还未初始化,此时访问为undefined

created
  • 实例初始化完成,可以访问数据和方法,但还未解析模板无AST和虚拟DOM树,常用于提前准备耗时操作的数据

挂载阶段(虚拟dom与真实dom关联)

beforeMount
  • 模板解析完成(包含事件监听),render函数首次调用,虚拟dom树创建,但还未关联到真实dom中,无法操作真实dom

mounted
  • 实例成功挂载到真实dom中,原始dom元素被虚拟dom元素替换。可用于初始化依赖真实DOM的库。
  • @click=""被转化为v-on:click="",进一步被编译为js原生事件监听,所以挂载完成后,button中的@click“消失”了。

更新阶段(新的虚拟dom修改真实dom前)

beforeUpdate
  • 新的虚拟dom树已生成(渲染任务完成),但还未进行diff比对和patch修补,真实dom未更新。

updated
  • 虚拟dom的diff和patch完成,变更应用到真实dom中

销毁阶段

beforeDestory

destoryed
  • 销毁本质上是在清理和释放资源,以及避免内存泄漏
  • 切断响应式连接:解除真实dom挂载,取消对响应式数据的追踪(watcher和effect)
  • 移除事件监听器:移除该实例添加的所有自定义事件监听器(@click等模板声明事件,$on、$emit等自定义事件)
  • 销毁所有子组件:递归销毁所有子组件,确保对应的组件树被清理

http://www.dtcms.com/a/406050.html

相关文章:

  • MySQL学习笔记04:MySQL InnoDB存储引擎核心机制深度解析
  • 中国企业网站建设响应式网站管理
  • 遇到不会的事,先写一写
  • 心理咨询 网站模版嘉兴网站建设技术开发
  • 【面试】Kafka / RabbitMQ / ActiveMQ
  • 新网站建设的工作总结文化网站建设需要的功能
  • 11.WPF 的命令处理事件--参数介绍
  • 旅游管理虚拟仿真实训室:打通理论与实践壁垒
  • FreeLong-无需训练即可延长视频生成时长
  • Lynx:新一代个性化视频生成模型,单图即可生成视频,重新定义身份一致性与视觉质量
  • 关于机器视觉中的”果冻效应“讲解:全局曝光 vs 卷帘曝光
  • 如何做百度的网站网站开发技术的雏形 cgi
  • 织梦医院网站源码6731官方网站下载
  • Transformer模型/注意力机制/目标检测/语义分割/图神经网络/强化学习/生成式模型/自监督学习/物理信息神经网络等
  • 公司网站 域名seo快速提高网站转化率
  • Planner Agent 和 PlanReAct 的区别
  • Google Play合规指南:您的应用所使用的原生库不支持 16 KB 内存页面大小.快速解决
  • 什么是覆盖索引?PostgreSQL 是否支持覆盖索引?
  • 谨慎地迭代函数所收到的参数 (Effective Python 第31条)
  • ESP32 NTC热敏电阻测温全攻略:从ADC采样到线性插值算法详解
  • 介绍 τ-bench:一个评估语言智能体在真实场景中与人、工具、规则交互能力的新基准
  • 网站模版建设教程效果好网站建设哪家好
  • 20-for循环案例练习
  • 华策影视 AIGC 实战:剧本分镜 1 小时生成,影视创作告别熬夜改稿时代
  • 移动固态硬盘无法被电脑识别怎么办?
  • 突破地域限制:WaveTerminal与cpolar的远程开发协作方案
  • vue2和vue3的watch用法
  • 【Python】文件处理(二)
  • 幸运飞艇网站建设设计网站流程
  • 基于vue的考研信息系统6kv17(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末