Shu*_*ham 5 reactjs virtual-dom
我从消息源中了解到,如果我更新任何组件的状态,那么整个虚拟dom都会被渲染?是真的吗?如果是,那么为什么不调用所有组件的render方法?
另外,需要在以下几点进行说明-
我假设如果将虚拟dom与实际dom进行比较,则虚拟dom花费的时间比真实dom少。但是如何实际证明呢?
react如何使用差异算法仅更新发生更改的各个组件(如果我使用setState方法)
任何视频讲座,将不胜感激。
不,您所读到的内容是不正确的。
当您更新组件的状态时,这意味着您更改了虚拟 DOM 的一部分,您只会更改 React 虚拟 DOM 的特定部分,而不会更改其他任何内容。
所有其他组件都不会重新渲染。
对您的问题的回答:
虚拟 DOM 是纯 JavaScript 对象中实际 DOM 的表示。关于什么是虚拟 DOM 的全面详细信息可以在这个stackoverflow 问题和这篇 媒体文章中找到
就效率而言,操作真实的 DOM 确实是非常昂贵的。另一方面,虚拟 DOM 非常高效。以下几篇文章可以帮助您了解具体方法:Codecademy和 Medium 文章
Codecademy解释了diffing 算法的工作原理,但您也可以阅读以下内容,以获取有关 React 官方文档中提到的算法的更多信息。
我相信我找到并在这里列出的文章足以理解虚拟 DOM 、虚拟 DOM 和真实 DOM之间的性能差异以及比较算法是如何工作的
| 归档时间: |
|
| 查看次数: |
469 次 |
| 最近记录: |