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

时间:2016-09-26 06:22:17

标签: javascript reactjs virtual-dom

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'})相同吗?

1 个答案:

答案 0 :(得分:0)

默认情况下,React触发对setState的所有调用的重新呈现,无论数据是否已更改(请参阅setState docs),因此我希望它在你描述过的案例。

如果您需要特定的行为,可以使用shouldComponentUpdate覆盖其行为。

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