当我设置更改状态和未更改状态时,React Virtual DOM是如何工作的



React Virtual DOM在旧的内存DOM和新的内存DOM之间的区别是什么?具体来说,我只设置变化状态和同时设置变化状态和不变状态之间有什么区别吗?set Object和Number有什么区别吗?

例如

:当前状态为{name: 'Eric', id: '1234567890', others: {other1: 1, other2: 2}}。diff结果this.setState({name: 'Tiger'})是否与diff结果this.setState({name: 'Tiger', id: '1234567890', others: {other1: 1, other2: 2}})相同?

默认情况下,React触发对setState的所有调用的重新渲染,无论数据是否已更改(参见setState文档),所以我希望它在您所描述的情况下是相同的。

如果你需要特定的行为,你可以使用shouldComponentUpdate重写它的行为。

这对于它使用的内部差异的实际内容意味着什么是另一回事-我希望它们是相同的,但是依赖于任何这种行为的细节感觉都是一个坏主意。

最新更新