【发布时间】:2020-02-05 23:08:37
【问题描述】:
在 google 上以一种或其他形式在statement 下方看到
每次 React 应用程序中的底层数据发生变化时,都会有一个新的 Virtual 创建用户界面的 DOM 表示。这就是 事情变得有趣。更新浏览器的 DOM 分三步 在 React 中处理。
只要有任何改变,整个 UI 都会重新渲染 在虚拟 DOM 表示中。
与上一个的区别 将计算虚拟 DOM 表示和新的表示。
- 该 真正的 DOM 将使用实际更改的内容进行更新。这是非常 就像应用补丁一样。
我是 React 新手,想了解以上三点在 React 之前的时代是如何在 jQuery(或原生 JS)中工作的。
jQuery
- HTML 在服务器端构建,发送回浏览器。浏览器会解析、渲染、布局和绘制它。
- 假设在某些用户事件或加载时创建或隐藏了任何新的 DOM 元素。
- jQuery 会重新创建完整的 DOM 吗?从上面提到的第三点来看,React 仅更新已更改部分的 DOM,但其他系统(主要是 jQuery 或本机 JS)将重新创建完整的 DOM。对吗?
- 第三点是否仅适用于 DOM 更改,甚至当任何 UI 组件的状态发生更改(如填充文本框/下拉列表等)时?
【问题讨论】:
-
是的,最简单的方法是用当前版本替换容器的
innerHTML。但这是有问题的,因为 DOM 是有状态的并且慢。 -
No jQuery 不会重新创建完整的 DOM。只有你改变的部分。我认为为了公平比较,当涉及到基于数据更新的 DOM 更新时,您应该将 React 与诸如敲除或角度之类的库进行比较。在 jQuery 中,您需要手动完成所有这些操作。
标签: javascript jquery reactjs