組件生命周期
參考閱讀:
組件的生命周期包含三個主要部分:
掛載: 組件被插入到DOM中。
更新: 組件被重新渲染,查明DOM是否應該刷新。
移除: 組件從DOM中移除。
React提供生命周期方法,你可以在這些方法中放入自己的代碼。我們提供will方法,會在某些行為發生之前調用,和did方法,會在某些行為發生之后調用。
掛載
- getInitialState(): object在組件被掛載之前調用。狀態化的組件應該實現這個方法,返回初始的state數據。
- componentWillMount()在掛載發生之前立即被調用。
- render()
- componentDidMount()在掛載結束之后馬上被調用。需要DOM節點的初始化操作應該放在這里。
更新
- componentWillReceiveProps(object nextProps)當一個掛載的組件接收到新的props的時候被調用。該方法應該用于比較this.props和nextProps,然后使用this.setState()來改變state。
- shouldComponentUpdate(object nextProps, object nextState): boolean當組件做出是否要更新DOM的決定的時候被調用。實現該函數,優化this.props和nextProps,以及this.state和nextState的比較,如果不需要React更新DOM,則返回false。
- componentWillUpdate(object nextProps, object nextState)在更新發生之前被調用。你可以在這里調用this.setState()。
- componentDidUpdate(object prevProps, object prevState)在更新發生之后調用。
移除
- componentWillUnmount()在組件移除和銷毀之前被調用。清理工作應該放在這里。
掛載的方法(Mounted Methods)
- getDOMNode(): DOMElement可以在任何掛載的組件上面調用,用于獲取一個指向它的渲染DOM節點的引用。
- forceUpdate()當你知道一些很深的組件state已經改變了的時候,可以在該組件上面調用,而不是使用this.setState()。