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