虚拟DOM(diff算法) 和 真实DOM

虚拟DOM是真实DOM的抽象,通过对象描述节点,利用diff算法减少DOM操作带来的性能消耗。diff算法遵循同层比较、深度优先原则,避免跨层级比较,提高效率。虚拟DOM与真实DOM的主要区别在于,虚拟DOM频繁修改后一次性更新真实DOM,减少大面积重绘与排版,提升性能。
摘要由CSDN通过智能技术生成

虚拟DOM

只是一层对真实DOM的抽象,以JavaScript 对象 (VNode 节点) 作为基础的树,用对象的属性来描述节点,最终可以通过一系列操作使这棵树映射到真实环境上

Javascript对象中,虚拟DOM 表现为一个 Object 对象。并且最少包含标签名 (tag)、属性 (attrs) 和子元素对象 (children) 三个属性,不同框架对这三个属性的名命可能会有差别

创建虚拟DOM就是为了更好将虚拟的节点渲染到页面视图中,所以虚拟DOM对象的节点与真实DOM的属性一一照应

虚拟 DOM 的优势是 diff 算法,减少 JavaScript 操作真实 DOM 的带来的性能消耗


diff算法

diff 算法是一种通过同层的树节点进行比较的高效算法

其有两个特点:

  • 比较只会在同层级进行, 不会跨层级比较
  • 在diff比较的过程中,循环从两边向中间比较

diff 算法的在很多场景下都有应用,在 vue 中,作用于虚拟 dom 渲染成真实 dom 的新旧 VNode 节点比较

diff整体策略为:深度优先,同层比较

  1. 比较只会在同层级进行,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值