react中的虚拟DOM,虚拟DOM为何大大提升性能

25 篇文章 0 订阅

此文档通过慕课网学习视频做的笔记

看官莫急,急的话,直接看最后 改进方法二 React

原始方法

1、state数据
2、JSX 模版
3、数据+模版 结合,生成真实的DOM,来显示
4、state发生改变
5、数据+模版 结合,生成真实的Dom,替换原始的DOM

缺陷:
第一次生成真实的完整的dom片段
第二次生成真实的完整的dom片段
第二次的dom替换第一次的dom,非常耗性能

改进方法一

1、state数据
2、JSX 模版
3、数据+模版 结合,生成真实的DOM,来显示
4、state发生改变
5、数据+模版 结合,生成真实的Dom,替换原始的DOM
6、新的DOM和原始的DOM做对比,找差异
7、找出发生变化的是标签
8、只用新dom的变化标签替换老DOM的标签

缺陷:性能的提升并不明显

改进方法二 React

1、state数据
2、JSX 模版
jsx->creatElement->js对象虚拟dom->真实的dom结点

3、生成虚拟dom(实际上就是一个js对象,用它来描述真实DOM)(消耗性能极低)
虚拟dom表示上面的标签[‘div’,{id:‘abc’},[‘span’,{},‘hello’]]
4、用虚拟dom的结构,生成真实的DOM,来显示

 真实DOM:<div id="abc"><span>hello</span></div>

5、state发生改变
5、生成新的虚拟dom
[‘div’,{id:‘abc’},[‘span’,{},‘bye bye’]]
6、新的虚拟DOM和原始虚拟DOM做对比,找差异,找出 span内容发生变化(两个js的比对耗能极低)
7、直接操作DOM,改变span中的内容

优点:性能大大提升

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值