生命周期是一個抽象的概念,分成了很多個階段:
1.比如裝載階段(Mount),組件第一次在DOM樹中被渲染的過程;
2.比如更新過程(Update),組件狀態(tài)發(fā)生變化,重新更新渲染的過程;
3.比如卸載過程(Unmount),組件從DOM樹中被移除的過程;
React內(nèi)部為了告訴我們當前處于哪些階段,會對我們組件內(nèi)部實現(xiàn)的某些函數(shù)進行回調(diào),這些函數(shù)就是生命周期函數(shù):
1.比如實現(xiàn)componentDidMount函數(shù):組件已經(jīng)掛載到DOM上時,就會回調(diào);
2.比如實現(xiàn)componentDidUpdate函數(shù):組件已經(jīng)發(fā)生了更新時,就會回調(diào);
3.比如實現(xiàn)componentWillUnmount函數(shù):組件即將被移除時,就會回調(diào);
(注意:函數(shù)式組件是沒有生命周期函數(shù)的)

- componentDidMount中的操作
componentDidMount()會在組件掛載后(插入DOM樹中)立即調(diào)用。
1.依賴于DOM的操作;
2.發(fā)送網(wǎng)絡(luò)請求;(官方建議)
3.添加一些訂閱;(會在componentWillUnmount取消訂閱);
- componentDidUpdate中的操作
componentDidUpdate()會在更新后被立即調(diào)用,首次渲染不會執(zhí)行此方法。
1.當組件更新后,可以在此處對DOM進行操作;
2.如果你對更新前后的props進行了比較,也可以選擇在此處進行網(wǎng)絡(luò)請求;
- componentWillUnmount
componentWillUnmount()會在組件卸載及銷毀之前直接調(diào)用。
1.在此方法中執(zhí)行必要的清理操作;
2.清除timer,取消網(wǎng)絡(luò)請求或清除在componentDidMount()創(chuàng)建的訂閱等;