React中的虚拟DOM

使用原生JavaScript或jQuery直接操作DOM元素时,很大可能会触发回流事件,此时浏览器需要重新渲染页面,设置整个文档,计算DOM节点浪费了性能,而且效率低,非常影响用户体验。

react提出了一个新的思想,-始终整体刷新页面,当数据发生变化时,react会自动更新UI,这种方式虽然简单,但是有一个很明显的问题,慢。每次数据改变就重新渲染整个页面会做大量的“无用功”,而且无法保存节点状态,比如失去焦点,为了解决这个问题,react又提出了一个解决方案,就是虚拟DOM以及Diff算法。react根据原生DOM节点数创建了一个虚拟DOM,每次UI状态改变时生成新的虚拟DOM, 与原来的相比对,对于没有改变的节点,让其保持原样不动,只创建并替换发生改变的DOM节点。
React中的虚拟DOM

是程序员用js对象来模拟页面上的DOM和DOM 的嵌套。