React
React 是一个用于构建用户界面的库,核心概念是组件化设计和声明式编程。
React 的特点:当数据发生变化时,UI 能够自动把变化反映出来。
虚拟 DOM
虚拟 DOM(Virtual DOM),是对真实 DOM 的一个轻量级表示,保存在内存中。在每次组件更新时,React 会先生成新的虚拟 DOM 树,并与之前的虚拟 DOM 树进行 diff,只对比出变化的部分,再应用到真实 DOM 上,从而避免了大量的 DOM 操作。
以前是基于浏览器 DOM 的 API 去控制 DOM 节点的创建、修改和删除。
虚拟 DOM 的优点:
- 跨平台
- 处理兼容性
Diff 算法
最小化更新
找出差异后,react 会计算出需要更新的最小操作集,只更新实际 DOM 中变化的部分,而不是重绘整个页面。
批量更新
react 会批量处理多次状态更新,而不是每次状态变化就立即更新 DOM,避免频繁的更新渲染。