React底层是否调用document API实现DOM元素的创建与更新?
React底层DOM操作是否调用原生document API的解答
首先可以明确给出结论:React在操作真实DOM时,最终调用的就是浏览器提供的
document系列原生API,没有完全独立的实现方案。
- 你所了解的JSX转
React.createElement生成的对象,就是常说的虚拟DOM,它是JavaScript层的抽象结构,作用是做新旧节点的差异对比(diff运算),避免频繁直接操作DOM带来的性能损耗,并非是为了绕开原生DOM API设计的。 - 所有对真实DOM的增删改操作,都被封装在
react-dom渲染器的底层逻辑里:创建元素会调用document.createElement,插入节点会调用appendChild/insertBefore,删除节点调用removeChild,更新属性/文本会调用setAttribute/textContent等原生接口,都是标准的浏览器API调用。 - React的优化点在于会把多次状态变更带来的DOM操作需求合并,diff计算出最小的必要修改集合之后,再批量调用原生API执行修改,最大化减少浏览器重排重绘的开销,本质上只是对原生DOM操作的逻辑封装,没有跳出浏览器提供的能力边界。
内容的提问来源于stack exchange,提问作者j obe
相关产品推荐
相关产品推荐

