组件更新

componentWillReceiveProps(nextProps)

这是第一个调用属性更改的函数

组件的属性发生变化时,React 将使用新属性调用此函数。你可以访问到旧的道具与 this.props 和新道具与 nextProps

使用这些变量,你可以在旧道具和新道具之间进行一些比较操作,或者因为属性更改等而调用函数。

componentWillReceiveProps(nextProps){
  if (nextProps.initialCount && nextProps.initialCount > this.state.count){
    this.setState({
      count : nextProps.initialCount
    });
  }
}

shouldComponentUpdate(nextProps, nextState)

这是第二个函数调用属性更改和第一个 on 状态更改

默认情况下,如果另一个组件/组件更改组件的属性/状态, React 将呈现组件的新版本。在这种情况下,此函数始终返回 true。

如果组件必须更新,你可以覆盖此功能并更精确地选择

该功能主要用于优化

如果函数返回 false ,则更新管道立即停止

componentShouldUpdate(nextProps, nextState){
  return this.props.name !== nextProps.name ||
    this.state.count !== nextState.count;
}

componentWillUpdate(nextProps, nextState)

这个功能就像 componentWillMount()更改不在 DOM 中,因此你可以在更新执行之前进行一些更改。

/!\: 你不能使用 this.setState()

componentWillUpdate(nextProps, nextState){}

render()

有一些变化,所以重新渲染组件。

componentDidUpdate(prevProps, prevState)

componentDidMount() 相同的东西: DOM 被刷新,所以你可以在这里对 DOM 做一些工作。

componentDidUpdate(prevProps, prevState){}