React Virtual DOM如何在旧的内存中DOM和新的内存中DOM之间进行区分?具体来说,我只是设置更改状态和设置更改状态和未更改状态之间有什么区别吗? set Object和Number之间有什么区别吗?
例如:
当前状态为$scope.scopeFunction = function(index) {
return $scope.models[index+1]; //Or something of that sort
}
。差异结果{name: 'Eric', id: '1234567890', others: {other1: 1, other2: 2}}
与差异结果this.setState({name: 'Tiger'})
相同吗?
答案 0 :(得分:0)
默认情况下,React触发对setState
的所有调用的重新呈现,无论数据是否已更改(请参阅setState
docs),因此我希望它在你描述过的案例。
如果您需要特定的行为,可以使用shouldComponentUpdate
覆盖其行为。
这对于它所使用的内部差异的实际内容意味着什么是另一个故事 - 我希望它们是相同的,但依赖于任何此类行为的细节感觉是一个坏主意。