React Native學(xué)習(xí)筆記(四)-生命周期

lifecycle.jpg
  • 第一階段:是組件第一次繪制階段,如圖中的上面虛線框內(nèi),在這里完成了組件的加載和初始化;
  • 第二階段:是組件在運(yùn)行和交互階段,如圖中左下角虛線框,這個(gè)階段組件可以處理用戶交互,或者接收事件更新界面;
  • 第三階段:是組件卸載消亡的階段,如圖中右下角的虛線框中,這里做一些組件的清理工作

生命周期

實(shí)例化
getDefaultProps

在組件創(chuàng)建前,會(huì)全局調(diào)用一次 getDefaultProps(),初始化默認(rèn)props屬性

getInitialState

在組件創(chuàng)建并加載時(shí),初始化組件的狀態(tài)

componentWillMount

在初始化狀態(tài)之后,render() 之后調(diào)用

render

渲染并返回 DOM 結(jié)構(gòu)

componentDidMount

在渲染完成后,通知組件已經(jīng)渲染完成

重新渲染
componentWillReceiveProps

如果有新收到的 Props (屬性)就會(huì)調(diào)用該方法,舊的屬性還是可以通過 this.props 來獲取,可以通過調(diào)用 this.setState() 來更新你的組件狀態(tài),這里調(diào)用更新狀態(tài)是安全的,并不會(huì)觸發(fā)額外的 render() 調(diào)用

shouldComponentUpdate

函數(shù)的返回值決定是否需要更新組件,如果 true 表示需要更新,繼續(xù)走后面的更新流程。否者,則不更新,直接進(jìn)入等待狀態(tài)

componentWillUpdate

如果組件狀態(tài)或者屬性改變,并且上面的 shouldComponentUpdate() 返回為 true,就會(huì)開始準(zhǔn)更新組件,并調(diào)用 componentWillUpdate()

void componentWillUpdate(  
  object nextProps, object nextState
)

在這個(gè)函數(shù)中不能使用 this.setState 來修改狀態(tài)。函數(shù)調(diào)用之后,就會(huì)把 nextProps 和 nextState 分別設(shè)置到 this.props 和 this.state 中,然后就是調(diào)用 render()進(jìn)行頁面的渲染

render
componentDidUpdate

調(diào)用了 render() 更新完成界面之后,會(huì)調(diào)用 componentDidUpdate() 來通知界面已經(jīng)渲染完成了

componentWillUnmount

當(dāng)組件要被從界面上移除的時(shí)候,就會(huì)調(diào)用 componentWillUnmount()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容