【发布时间】:2019-03-04 10:28:46
【问题描述】:
我对 DOM 操作有疑问,参考比较 在 React Virtual DOM 和 JQuery 直接 DOM 操作之间。 假设我们要更新一个 DOM 节点:
A)通过使用 React.js :
1.React 创建 Virtual DOM (in-memory, 'javascript-made' representation of real DOM ),我们称之为 VD1
- 渲染()
3.React 创建一个新的 Virtual DOM 实例,我们称之为 VD2
4.React 比较 VD1 和 VD2 并检测它们在一个节点元素处不同
5.React 定位该位置并通过仅“更改”位置完整地“注入”更改,而无需从根到 DOM 树的顶部重建整个真实 DOM
B) 相同,但使用 JQuery:
1.我们通过JQuery直接操作真实的DOM进行了更改 命令
-
浏览器检测到更改,因此它会遍历整个(真实)DOM 树并寻找更改的位置
3.发现它应用更改并重建 DOM 以向用户呈现新版本的页面
如果我理解正确,这是放弃 JQuery 和直接 DOM 操作以支持虚拟 DOM 和更好的 React 性能的主要原因吗?
【问题讨论】:
标签: jquery reactjs performance dom