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

Vue/组件的生命周期

这篇文章借鉴了coderwhy大佬的Vue生命周期

在Vue实例化或者创建组件的过程中 内部涉及到一系列复杂的阶段 每一个阶段的前后时机都可能对应一个钩子函数 以下是我根据coderwhy大佬文章对于每一个阶段的一些看法

1.过程一

在这里插入图片描述
首先实例化Vue或者组件 在实例化之前 会对应一个钩子函数beforeCreate(如果未定义的话 肯定不会调用 以下同理) 在实例化之后 也会对应一个钩子函数created

2.过程二

在这里插入图片描述
实例化之后 会判断一下Vue实例中是否挂载了el属性(挂载意味着拿到某一个物品的控制权 可以控制它做事情) 如果挂载了 在判断一下是否挂载了template属性/组件 反之如果没有挂载el属性(即vue组件) 那就需要通过$mount(el)对Vue实例进行el元素的手动挂载 接着在判断是否存在template属性
如果存在template属性的话 那么就会先将其渲染为render函数(runtime compiler模式 即template->ast->render()->vdom->ui) 如果不存在的话 那么就是将render函数转换为虚拟dom最终生成组件ui的过程(runtime only模式 即render()->vdom->ui 该模式体积小 效率高)

3.过程三

在这里插入图片描述
该过程中 创建el指向的dom元素 并且将Vue实例挂载的template替换他 替换完成之时就是挂载完毕之时 在挂载前后存在两个钩子函数用于监听这两个时机
挂载(mount)完毕以后 如果template中的响应式数据发生了改变 那么需要重新渲染处vdom 和真实dom进行比对 以更新真实dom

4.过程四

在这里插入图片描述
当组件不再被挂载/使用时 这时候 组件就进入到了销毁阶段 而在销毁前后定义两个钩子函数用以监听这两个时机


http://www.kler.cn/news/336042.html

相关文章:

  • 【数据结构】【队列】算法汇总
  • 电脑提示d3dcompiler_47.dll缺失怎么修复,仔细介绍dll的解决方法
  • netty之Netty与SpringBoot整合
  • JavaScript进行数据可视化:D3.js入门
  • MySQL 和 Elasticsearch 的应用场景
  • 腾讯云技术深度解析:构建高效云原生微服务架构与AI创新实践
  • EPC User Manual Introduction
  • 矩阵消元的LU分解——解法及为什么这样做
  • 【游戏模组】星际争霸1代模组燃烧之地,泰伦帝国对决UED。特效华丽兵种巨多特别好玩
  • 开源软件简介
  • 【算法篇】回溯算法类(2)(笔记)
  • Docker 安装与配置单机多磁盘 MinIO:高效存储解决方案
  • Spring Boot新闻推荐系统设计与实现
  • 使用Spring Boot与AnalyticDB结合通义千问API实现智能PPT生成功能
  • 【AI论文精读1】针对知识密集型NLP任务的检索增强生成(RAG原始论文)
  • Pikachu-xss防范措施 - href输出 js输出
  • 新160个crackme - 076-ArturDents-CrackMe#1
  • 二分解题的奇技淫巧都有哪些,你还不会吗?
  • 鸿蒙next开发者第一课02.DevEcoStudio的使用-习题
  • 【Kubernetes】常见面试题汇总(五十二)