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