如何理想地提高React性能:componentWillReceiveProps vs shouldComponentUpdate

时间:2017-11-30 10:39:37

标签: performance reactjs

我想知道哪种技术最适合提高React应用程序的性能。我了解了组件生命周期方法componentWillReceivePropsshouldComponentUpdate,但我并不确定应该在理想情况下实施哪一种方法来避免不必要的重新渲染。

最好是同时实现两者还是只实现其中一种?

另外,我不明白为什么shouldComponentUpdate如果nextProps已经(应该)处理componentWillReceivePropsAndroid Studio Settings or Preferences-> Build,Execution,Deployment -> Instant Run.会收到Settings --> Additional settings --> Developer options --> Turn Off MIUI optimization

2 个答案:

答案 0 :(得分:0)

componentWillReceiveProps(props) {
    console.log("componentWillReceiveProps");
    return false; // This will not terminate further control flow in this component.
}

shouldComponentUpdate(props, newState) {
    console.log("shouldComponentUpdate");
    return false; // This terminates further control flow in this component.
}

根据条件,您可以从shouldComponentUpdate方法返回布尔值。如果您要返回false,则不会调用componentWillUpdate()方法。

答案 1 :(得分:0)

当您需要在问题中描述的行为时,请使用PureComponent而不是Component。 https://reactjs.org/docs/react-api.html#reactpurecomponent