React中的视图更新与虚拟DOM

React中的视图更新过程

1. state 数据

2. JSX 模板

3. 用虚拟DOM的结构,生成真实的DOM

 ['div', {id: 'abc'}, ['span', {}, 'Hello']]

4. 用虚拟DOM的结构,生成真实的DOM

 <div id="abc"><span>Hello!</span></div>

5. 数据state 发生改变

6. 数据 + 模板 生成新的虚拟DOM

['div', {id: 'abc'}, ['span', {}, 'World!']]

7. 比较原始虚拟DOM和新虚拟DOM的区别(diff算法),找到区别是span中的内容

8.  操作DOM,只改变span中的内容

VDOM优点:

  1. 性能得到提升
  2. 它使得跨端应用( React Native )得以实现。在浏览器端是将虚拟DOM转换为一个个的浏览器DOM节点。而如果将他转换为原生应用的组件,那么跨端应用就能得到实现。

为什么使用VDOM极大的提升了性能?

  1. 虚拟DOM的使用让页面只重新生成数据变更的DOM,而不是把整个页面重新绘制出来。
  2. 虚拟DOM其实就是JS对象。在比较数据哪里发生变化的时候效率极高。如果去生成一个真实的DOM树和已有的DOM树比较效率是很低的,因为JS生成DOM树会调用web application级的API,这种级别的API性能损耗是很大的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值