虚拟DOM实现流程

本文对比了两种不同的DOM更新策略,一种是直接生成并替换整个DOM片段的方式,另一种则是通过虚拟DOM来比较新旧DOM之间的差异,仅更新变动的部分。通过这种方式极大提升了应用性能,并使跨端开发成为可能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

尚未使用虚拟DOM

方案一:

1. state数据

2.JSX模版

3,数据+模版结合,生成真实的DOM,来显示

4. state发生改变

5.   数据+模版结合,生成真实的DOM,替換原始的DOM

 

缺陷:

第一次生成了ー个完整的DOM片段

第二次生成了一个完整的DOM片段

第二次的D0M替换第一次的DOM,非常耗性能

方案二:

1. state数据

2.JSX模版

3.数据+模版结合,生成真实的DOM,来显示

4. state发生改变

5。数据+模版结合,生成真实的DOM,并不直接替换原始的DOM

6。新的DOM( Doucumentfragment)和原始的DOM做比对,找差异

7.找出 input框发生了变化

8,只用新的DOM中的 input元素,替换掉老的DOM中的 input元素

 

缺陷

性能的提升井不明显

 

使用虚拟DOM:

1. state歜据

2.JSX模版

3.数据+模版生成虚拟DOM(虚拟DOM就是一个JS对象,用它来描述真实DOM)(损耗了性能)

['div",{id:‘abc’,["span',{},' hello world]]

4.用虚拟DOM的结构生成真实的D0M,来显示

<div id="abc"><span>heillo world</span></div>

5. state发生变化

6.数据+模版 生成新的应拟DOM(极大的提升了性能)

["div,tid:'abc'}。['span',{}," bye bye"]]

7.比较原始虚拟DOM和所的虚拟DOM的区别,找到区别是span中内容(极大的提升性能)

8.直接操作DOM,改变span中的内容。

 

优点

1.性能提升了

2.它使得跨端应用得以实现。react  native

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值