React生命周期

React 的生命周期:官方API

下面這個(gè)方法是組件第一次加載時(shí)執(zhí)行

  1. constructor() :最先調(diào)用用
  2. componentWillMount() :render 前立即執(zhí)行
  3. render() : 插入到DOM
  4. componentDidMount() : render()后立馬運(yùn)行,且只會(huì)運(yùn)行一次

state 或props更新時(shí),會(huì)觸發(fā)render()重新執(zhí)行,而以下這些方法在render()再次執(zhí)行前執(zhí)行:

  1. componentWillReceiveProps(nextProps) : 在接收到新的props時(shí),this.props并未被更新,nextProps 就是新的props
  2. shouldComponentUpdate() :默認(rèn)是每次state改變時(shí),都會(huì)重新render(). 但是它在第一次render不會(huì)運(yùn)行,在forceUpdate()時(shí)不會(huì)運(yùn)行。return false時(shí),render()不會(huì)執(zhí)行
  3. componentWillUpdate() : 組件更新(render()確定要執(zhí)行了)前的一步,這兒不能更改state。 你能想到:shouldComponentUpdate() returnfalse時(shí),它不會(huì)運(yùn)行
  4. render() : 更新DOM
  5. componentDidUpdate(),gengxinDOM后立即執(zhí)行

組件完結(jié),開始銷毀:

  • componentWillUnmount() : 組件被銷毀前,一般用來去掉事件監(jiān)聽,或者一些全局綁定,就是那些JS垃圾回收機(jī)制不會(huì)自動(dòng)回收的東西

React的其他API:

  • setState() : 修改state
  • forceUpdate():這個(gè)不會(huì)導(dǎo)致shouldComponentUpdate() 運(yùn)行,但是子組件的shouldComponentUpdate() 會(huì)執(zhí)行,這個(gè)東西要少用。
  • defaultProps : 給props設(shè)置默認(rèn)值。
  • propTypes:給props內(nèi)的參數(shù)設(shè)置類型限制,或者必填規(guī)則(就是一定要有這個(gè)參數(shù))
最后編輯于
?著作權(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)容

  • 組件的生命周期方法分以下三個(gè)階段。 Mounting當(dāng)創(chuàng)建組件的實(shí)例并將其插入到DOM中時(shí),將調(diào)用這些方法:con...
    _八神光_閱讀 1,221評(píng)論 0 0
  • 好比我們?nèi)顺硕虝旱纳c死那一瞬之外,生命中剩下的時(shí)間都用在了每天活著的狀態(tài),對(duì)于React中的組件來講,占其總生...
    YeLqgd閱讀 10,660評(píng)論 0 7
  • 譯自 React Component Lifecycle 每個(gè)組件都有若干生命周期函數(shù)。如函數(shù)名稱所示,帶有wil...
    KrisLeeSH閱讀 643評(píng)論 0 0
  • Each component has several "lifecycle methods" that you c...
    暮落晨曦閱讀 525評(píng)論 0 0
  • 又是一個(gè)老生常談的內(nèi)容,從ES6起已經(jīng)開始使用class的方式去創(chuàng)建組件,這種創(chuàng)建方式上的變化也帶來了寫法和方法上...
    殷灬商閱讀 497評(píng)論 0 1

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