RN(react native)入坑指南-10,組件的生命周期

lifecycle.jpg

創(chuàng)建階段
getDefaultProps : 在創(chuàng)建類的時(shí)候調(diào)用,處理props的默認(rèn)值,getDefaultProps僅會被調(diào)用一次,這里的意思是無論你會創(chuàng)建多少個(gè)ReactElement,這個(gè)函數(shù)都只執(zhí)行一次,之后的默認(rèn)props都會直接使用改函數(shù)的返回值。

實(shí)例化階段

  • constructor(getInitialState):初始化組件state的值,返回值會賦值給this.state屬性,這是ES6版本的寫法,ES5中使用的是getInitialState.在ES6的版本中有些不太一樣,相對與getDefaultProps,ES6將默認(rèn)屬性對象作為了構(gòu)造函數(shù)的一個(gè)屬性,而getInitialState則變成了在其構(gòu)造器函數(shù)中給this.state賦值.

  • componentWillMount:render之前調(diào)用

  • render:渲染并返回一個(gè)虛擬dom

  • componentDidMount:render之后調(diào)用,在組件渲染完成后調(diào)用一次.

  • p.s:state屬性,主要用來存儲組件自身需要的數(shù)據(jù),每次數(shù)據(jù)的更新都是通過修改state屬性的值,rn內(nèi)部會監(jiān)聽state屬性,一旦變化即會觸發(fā)render方法更新dom

運(yùn)行階段

  • componentWillReceiveProps:用戶操作后或父組件更新后,根據(jù)用戶的操作行為對頁面進(jìn)行調(diào)整
  • shouldComponentUpdate:攔截新的props或state
  • componentWillUpdate:shouldComponentUpdate返回true的情況下執(zhí)行
  • componentDidUpdate:組件更新后執(zhí)行

銷毀階段

    • componentWillUnmount:銷毀時(shí)調(diào)用,通常做一些取消綁定

p.s:絕對不要在componentWillUpdate和componentDidUpdate中調(diào)用this.setState方法,否則將導(dǎo)致無限循環(huán)調(diào)用。

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

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

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