react 性能优化之 componentWillReceiveProps & componentDidUpdate

Posted xiaoyaoweb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react 性能优化之 componentWillReceiveProps & componentDidUpdate相关的知识,希望对你有一定的参考价值。

使用方法看起来一样:

componentWillReceiveProps(nextProps) {
    if(nextProps.count !== this.props.count) 
// doSomething } }
componentDidUpdate(prevProps) {
    if(prevProps.count !==  this.props.count) {
        this.setState({
            count: this.props.count
        })
    } 
}
区别:
生命周期调用时机不同
componentWillReceiveProps在组件接受新的props之前触发,
componentDidUpdate在组件接受新的props之后触发

更新state的方式

最主要的区别是

  • componentWillReceiveProps更新状态是同步的
  • componentDidUpdate更新状态是异步的
    这点区别非常重要,也是componentWillReceiveProps生命周期被废弃的重要原因(可能导致某些问题), 所以推荐使用componentDidUpdate
转载链接:https://www.jianshu.com/p/638f67160fcf

 

 

以上是关于react 性能优化之 componentWillReceiveProps & componentDidUpdate的主要内容,如果未能解决你的问题,请参考以下文章

React性能优化之减少组件渲染次数

React.Component 与 React.PureComponent(React之性能优化)

React性能优化之memo,useMemo,useCallback的使用与区别

React性能优化之shouldComponentUpdate

react学习笔记之组件生命周期

react 性能优化之 componentWillReceiveProps & componentDidUpdate