元件更新

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){}