为什么react这么快呢 

  因为react用了虚拟DOM;

  但是每次虚拟DOM转真实DOM不也是很浪费性能吗

  nice,所以关键点在Diff算法这里,去对比新旧DOM树,而后通过补丁去更新到真实DOM上

  这个比对不是也很浪费时间吗

  正常情况下,比较两个树形结构差异的算法的时间复杂度是O(N^3),这个效率显然是无法接受的。

  react通过总结DOM的实际使用场景提出了两个在绝大多数实践场景下都成立的假设,基于这两个假设,React实现了在O(N)时间复杂度内完成两棵虚拟DOM树的比较。

  两个假设是:

    (1)如果两个元素的类型不同,那么它们将生成两棵不同的树;

    (2)为列表中的元素设置key属性,用key标识对应的元素在多次;

  面对性能优化我们能做什么呢

    1、使用生产环境版本的库;

     2、避免不必要的组件渲染;

     3、使用key;  

  

  

最新文章

  1. QQ号验证
  2. 关于分开编写多个LaTeX文件的一点微小的总结
  3. AES .net 、JS 相互加密解密
  4. Android 中沉浸式状态栏实现
  5. JavaScript实例---表格隔行变色以及移入鼠标高亮
  6. 哪项技术可以用在WEB开发中实现会话跟踪实现?
  7. 自定义WM_NOTIFY消息
  8. [LeetCode] 306. Additive Number [Medium]
  9. (转)在Mac下使用OpenCV, 在Xcode下使用OpenCV (非常基础,详细)
  10. ios随机数不重复
  11. Node.js学习之TCP/IP数据通讯
  12. CSS深入理解学习笔记之vertical-align
  13. spring boot actuator专题
  14. 防止html页面缓存
  15. HTML5 - Canvas【申明:来源于网络】
  16. Jetson tk1 安装 usbtoserials 驱动(重新刷机)
  17. Highcharts 柱图 每个柱子外围的白色边框
  18. Web API中常用Filter的执行顺序举例讲解
  19. 解决访问 jar 包里面的字体报错:OTS parsing error: incorrect file size in WOFF header
  20. 如何矫正罗圈腿(O型腿)

热门文章

  1. 基于LNMP部署DiscuzX
  2. js 购物车的数量加减,对应的总价也随机变化
  3. 【JZOJ6421】匹配
  4. Linkedlist 详解
  5. 通过网络socket获取对方 ip 和port
  6. Maven将本地项目打包后引入本地另一个项目
  7. 【磁盘】顺序IO比随机IO快
  8. 字符串dp——牛客多校第五场G
  9. opencv-图像形态学之开运算、闭运算、形态学梯度、顶帽、黑帽合辑
  10. C#-Api:身份证识别