組件生命周期
參考閱讀:
組件的生命周期包含三個(gè)主要部分:
掛載: 組件被插入到DOM中关划。
更新: 組件被重新渲染跛溉,查明DOM是否應(yīng)該刷新奈泪。
移除: 組件從DOM中移除胯甩。
React提供生命周期方法痢士,你可以在這些方法中放入自己的代碼诈唬。我們提供will方法亡哄,會(huì)在某些行為發(fā)生之前調(diào)用叫倍,和did方法象颖,會(huì)在某些行為發(fā)生之后調(diào)用佩厚。
掛載
- getInitialState(): object在組件被掛載之前調(diào)用。狀態(tài)化的組件應(yīng)該實(shí)現(xiàn)這個(gè)方法说订,返回初始的state數(shù)據(jù)抄瓦。
- componentWillMount()在掛載發(fā)生之前立即被調(diào)用。
- render()
- componentDidMount()在掛載結(jié)束之后馬上被調(diào)用陶冷。需要DOM節(jié)點(diǎn)的初始化操作應(yīng)該放在這里钙姊。
更新
- componentWillReceiveProps(object nextProps)當(dāng)一個(gè)掛載的組件接收到新的props的時(shí)候被調(diào)用。該方法應(yīng)該用于比較this.props和nextProps埂伦,然后使用this.setState()來改變state煞额。
- shouldComponentUpdate(object nextProps, object nextState): boolean當(dāng)組件做出是否要更新DOM的決定的時(shí)候被調(diào)用。實(shí)現(xiàn)該函數(shù)沾谜,優(yōu)化this.props和nextProps膊毁,以及this.state和nextState的比較,如果不需要React更新DOM基跑,則返回false婚温。
- componentWillUpdate(object nextProps, object nextState)在更新發(fā)生之前被調(diào)用。你可以在這里調(diào)用this.setState()媳否。
- componentDidUpdate(object prevProps, object prevState)在更新發(fā)生之后調(diào)用栅螟。
移除
- componentWillUnmount()在組件移除和銷毀之前被調(diào)用。清理工作應(yīng)該放在這里篱竭。
掛載的方法(Mounted Methods)
- getDOMNode(): DOMElement可以在任何掛載的組件上面調(diào)用力图,用于獲取一個(gè)指向它的渲染DOM節(jié)點(diǎn)的引用。
- forceUpdate()當(dāng)你知道一些很深的組件state已經(jīng)改變了的時(shí)候掺逼,可以在該組件上面調(diào)用吃媒,而不是使用this.setState()。