组件化开发——组件生命周期

2023-11-15

最近刚刚换了工作,原来一直用angular系列,本来一直看好react的,结果facebook自己非要作死,结果就让vue直飞冲天了,现在工作中也用到vue,熟悉之余顺便记下一笔。后续可能会有weex先关的,暂且记录一下。
今天看了一下vue的生命周期,顺便和之前用的angular、react进行一下对比:

1. 组件化与virtualDOM、shadowDOM

目前前端领域的三大框架都是用了组件化开发的设计思想,即web页面构建都不同程度使用了virtualDOM,即我们熟知的虚拟DOM技术。虚拟DOM,本质上来说就是开发者可以使用自定义的标签元素,来扩展W3C标准的标签元素,进而构建灵活的web应用页面。其实webkit里面有一个与之非常相似的shadowDOM,随便打开一个浏览器,打开一个视频网站,审查元素选中一个vedio,将浏览器设置,勾选Show user agent shadow DOM, 你就看到了一个shadow DOM,而这个shadowDOM开发者是可以创建可控制的。
1034075-20171125002848078-128061658.png
1034075-20171125002903796-2100974067.png

是的,这就是virtual DOM的蓝本。只不过把所有的属性、数据都当做shadowDom的参数传递到shadowDom内部而已, 不管vue、react还是angular的组件,都是这个思想的另一种实现方式。
组件化思想说通俗点就是开发者自定义组件,组件化思想的技术实现不过如此而已。。。

2.组件渲染

了解了组件化的技术,我们在来分析一下一个组件在web页面从无到有,再到无的会经历的几个过程及状态。
①定义/创建组件:定义组件的各种属性、数据、相关的方法、状态
②渲染/挂载组件:确定组件在DOM树种渲染的位置、时机
③操作/更改组件:修改组件的相关属性、状态、数据,进行组件之间的通讯
④删除/销毁组件:将组件从DOM树种移除
对比三大框架都不约而同(xiang hu chao xi)的定义了一个组件的生命周期,并开发其接口,以便开发者在适当的时候对组件进行操作;

3.生命周期

1.Angular生命周期(8个):
  • ngOnChanges:组件绑定属性、
  • ngOnInit:组件初始化前、
  • ngDoCheck:手动检测组件属性、
  • ngAfterContentInit:组件变更数据进行投影、
  • ngAftercontentCheked每次投影变更后调用、
  • ngAfterViewInit:初始化组件、子视图、
  • ngAfterViewChecked:检查完子视图、
  • ngOnDestroy:组件销毁前
2.React 生命周期(8个):
  • compoentWillMount:组件挂载前
  • render:组件渲染
  • componentDidMount:组件渲染后
  • componentWillRecieveProps:组件更新接受数据
  • shouldComponentUpdate:组件更新数据
  • componentWillUpdate:组件更新前
  • componentDidUpdate:组件更新后
  • componentWillUnmount:组件销毁前
3.Vue组件生命周期(8个):vue2.0引入生命周期
  • beforeCreate:组件创建前
  • created:组件创建后
  • beforeMount:组件载入前
  • mounted:组件载入后
  • beforeUpdated:组件更新前
  • updated:组件更新后
  • beforeDestroy:组件销毁前
  • destroyed:组件销毁后

转载于:https://www.cnblogs.com/hbzyin/p/7893172.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

组件化开发——组件生命周期 的相关文章

随机推荐

  • pytorch 线性回归拟合sin函数

    目录 1 库文件 2 定义超参数 3 获取数据集 4 加载训练集 测试集 5 搭建线性网络 6 实例化网络和优化器 7 训练网络 8 可视化 9 结果展示 10 完整代码 1 库文件 os 文件是为了消除matplotlib 绘图的错误 T
  • Yolox_s可视化网络结构图

    Yolox共有七种网络结构 包含2种轻量级网络 和5种标准网络 轻量级网络 1 Yolox Nano可视化网络结构图 点击查看 2 Yolox Tiniy可视化网络结构图 点击查看 标准网络 1 Yolox s可视化网络结构图 点击查看 2
  • Java中对象实例化过程中的多态特性

    通过上述代码 始终明确调用的方法必须是实例化子类中重写的方法 首先 在main函数中 new B new了一个B类的实例化对象 在实例化对象时 调用了B类中的构造函数 执行 super 5 也就是public A int v gt setV
  • 14.应用层HTTP协议

    目录 一 OSI七层协议 vs TCP IP五层协议 二 HTTP协议 URL 1 1URL 中的可省略部分 2 请求消息Request 2 1请求行 2 2请求头 2 3空行 2 4请求数据 2 5HTTP 请求方法 3 响应消息Resp
  • sql developer默认是不自动提交事务的,如何查询未被提交的事务

    select SQL TEXT status from v sql v transaction where LAST ACTIVE TIME START DATE 上面的语句可以查询未被提交的事务 如果你查询或更新时很长时间没反应 一般是另
  • 二分查找BinarySearch

    二分查找 在包含size个元素 从小到大排序的int数组array里查找元素p 如果找到返回下标 如果未找到返回 1 int BinarySearch int array int size int p int left 0 查找区间的左端点
  • 5.7及以上版本的MySQL下载、安装及配置教程

    对版本的说明 之所以说是MySQL5 7及以上版本 是因为从MySQL5 7版本之后 其安全机制有所改变 在安装完成后 登陆MySQL时 需要输入一个密码 这个密码其实是在配置MySQL的过程中生成的一个随机密码 而我们必须找到这个随机密码
  • Eclipse中启动Tomcat无任何反应

    推动了软件业不断发展的可以说有3个方面的东西 过程 方法 技术 方法附会到哲学上应该就是方法论了 做很多事情都是需要方法的 比如写一篇案例 随心随意写也可以写出来 但是别人能否理解 如何检测自己描述清晰都是没有参考的 如果有个模板的 这样按
  • 韩顺平_java 学习路线

    链接 目录 阶段一 Java基础 阶段二 Java高级 阶段三 Java Web 阶段四 主流框架 项目管理相关的技术 阶段五 分布式 微服务 并行架构 阶段六 DevOps 开发运维一体化 自动部署项目管理 解决 CI CD 阶段七 大数
  • 【目标检测】单阶段算法--YOLOv3详解

    论文题目 YOLOv3 An Incremental Improvement 论文地址 https pjreddie com media files papers YOLOv3 pdf 一文读懂YOLOv1 YOLOv1 一文读懂YOLOv
  • 链表(详解)

    一 链表 1 1 什么是链表 1 链表是物理存储单元上非连续的 非顺序的存储结构 数据元素的逻辑顺序是通过链表的指针地址实现 有一系列结点 地址 组成 结点可动态的生成 2 结点包括两个部分 1 存储数据元素的数据域 内存空间 2 存储指向
  • gitee最详细使用教程,汇总了全网,看这一篇就够了

    1 gitee是什么 基于git的代码托管协助平台 2 git网站上的注册登录 打开gitee官网Gitee 基于 Git 的代码托管和研发协作平台打开注册登录即可 邮箱注册最好 非邮箱在个人 设置里添加自己的邮箱 新手请公开自己的邮箱 如
  • 《Vision Transformer (ViT)》论文精度,并解析ViT模型结构以及代码实现

    AN IMAGE IS WORTH 16X16 WORDS TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE 论文共有22页 表格和图像很多 网络模型结构解释的很清楚 并且用四个公式展示了模型的计算过程
  • springboot枚举反序列化,@JsonCreator注解各种报错解决方案

    你多努力一点 获得的打击就多一点 今天使用枚举传参就出现了各种报错 比如这样的 org springframework http converter HttpMessageNotReadableException JSON parse er
  • Android Fragment之间跳转

    1 创建一个接口 public interface ChangeFragment void changge int postion 2 设置一个全局变量 public class GlobalParms private static Hom
  • OpenCV在图片中输出中文乱码解决方案

    转自 http www jeepxie net article 789204 html 一 缘起 在一个项目中需要把中文字符输出到图片上 也就是输出到Mat上 OpenCV 的putText函数不能输出中文 通过搜索 网上普遍的解决方案是使
  • C++不定参数函数实现方式

    文章目录 define 函数定义 VA LIST栈 c 11初始化列表 c 11 变长参数模板template
  • java使用jsch连接ssh服务并远程执行命令、上传、下载操作

    java使用jsch连接ssh服务并远程执行命令 上传 下载操作 关键依赖 jsch 0 1 54 jar 第一 使用用户名和密码连接 使用用户名和密码连接 Test public void test1 throws JSchExcepti
  • php开发俄罗斯方块,动手打造html5俄罗斯方块的(图文)

    在正文开始之前还要啰嗦一下 标题中所谓自给自足 是在没有参考任何设计思路的前提下去开发这游戏的 你可能会不解 如果参考优秀的思路 岂不是事半功倍 当然 参考与不参考都有利 我只说不参考的利 当我煞费苦心 历经数十个BUG修改 终于完成一件作
  • 组件化开发——组件生命周期

    最近刚刚换了工作 原来一直用angular系列 本来一直看好react的 结果facebook自己非要作死 结果就让vue直飞冲天了 现在工作中也用到vue 熟悉之余顺便记下一笔 后续可能会有weex先关的 暂且记录一下 今天看了一下vue