Reactjs (React)调用setState之前是否应首先检查状态变量?

Reactjs (React)调用setState之前是否应首先检查状态变量?,reactjs,Reactjs,我是新的反应,我有一个代码功能运行所有4秒(定时器)。 此计时器设置一个变量。比如说: this.setState({ VariableA: false }); 现在这段代码运行了4秒钟。大多数情况下,变量都是假的。那么,我应该首先检查变量是否为false,还是react检查变量是否为false? 为了更好地理解,我应该编写代码A还是代码B: 代码A: function doSomething(){ this.setState({ Variab

我是新的反应,我有一个代码功能运行所有4秒(定时器)。 此计时器设置一个变量。比如说:

this.setState({
    VariableA: false
}); 
现在这段代码运行了4秒钟。大多数情况下,变量都是假的。那么,我应该首先检查变量是否为false,还是react检查变量是否为false? 为了更好地理解,我应该编写代码A还是代码B:

代码A:

function doSomething(){
        this.setState({
            VariableA: false
        }); 
}
function doSomething(){
     if(this.state.VariableA != false){
        this.setState({
            VariableA: false
        }); 
     }
}
代码B:

function doSomething(){
        this.setState({
            VariableA: false
        }); 
}
function doSomething(){
     if(this.state.VariableA != false){
        this.setState({
            VariableA: false
        }); 
     }
}

在运行“重新渲染”之前,React将检查状态是否已更改。我想,如果您有更复杂的状态,您应该自己进行检查,因为React将对所有状态属性进行检查。

在运行“重新渲染”之前,React将检查状态是否已更改。我想,如果您有更复杂的状态,您应该自己进行检查,因为React将对所有状态属性进行检查。

setState
会导致重新渲染,这实际上会导致DOM的协调,现在即使没有任何更改,也会发生协调阶段,您可以通过使用
PureComponent
来避免这种情况,它基本上在
shouldComponentUpdate
中实现了一个浅层比较,如果状态或道具没有改变,它不会触发重新渲染,并且它可以处理更多的情况,而不是每次在
setState

根据:

React.PureComponent
使用一个浅属性和状态来实现它 比较。如果React组件的
render()
函数呈现 同样的结果给出同样的道具和状态,你可以使用
React.PureComponent
在某些情况下提高性能


setState
会导致重新呈现,这实际上会导致DOM的
对账
,现在即使没有任何变化,也会发生对账阶段,您可以通过使用
PureComponent
来避免这种情况,它基本上在
shouldComponentUpdate
中实现了一个浅层比较,如果状态或道具没有改变,它不会触发重新渲染,并且它可以处理更多的情况,而不是每次在
setState

根据:

React.PureComponent
使用一个浅属性和状态来实现它 比较。如果React组件的
render()
函数呈现 同样的结果给出同样的道具和状态,你可以使用
React.PureComponent
在某些情况下提高性能


正如Shubham所说的!正如Shubham所说的!