react生命週期

2021-07-27 19:17:26 字數 1474 閱讀 2537

元件在初始化時會觸發5個鉤子函式:

1、getdefaultprops()

設定預設的props,也可以用defaultprops設定元件的預設屬性。

2、getinitialstate()

在使用es6的class語法時是沒有這個鉤子函式的,可以直接在constructor中定義this.state。此時可以訪問this.props。

3、componentwillmount()

元件初始化時只呼叫,以後元件更新不呼叫,整個生命週期只呼叫一次,此時可以修改state。

4、 render()

react最重要的步驟,建立虛擬dom,進行diff演算法,更新dom樹都在此進行。此時就不能更改state了。

5、componentdidmount()

元件渲染之後呼叫,可以通過this.getdomnode()獲取和操作dom節點,只呼叫一次。

在更新時也會觸發5個鉤子函式:6、componentwillreceiveprops(nextprops)

元件初始化時不呼叫,元件接受新的props時呼叫。

7、shouldcomponentupdate(nextprops, nextstate)

react效能優化非常重要的一環。元件接受新的state或者props時呼叫,我們可以設定在此對比前後兩個props和state是否相同,如果相同則返回false阻止更新,因為相同的屬性狀態一定會生成相同的dom樹,這樣就不需要創造新的dom樹和舊的dom樹進行diff演算法對比,節省大量效能,尤其是在dom結構複雜的時候。不過呼叫this.forceupdate會跳過此步驟。

8、componentwillupdate(nextprops, nextstate)

元件初始化時不呼叫,只有在元件將要更新時才呼叫,此時可以修改state

9、render()

不多說

10、componentdidupdate()

元件初始化時不呼叫,元件更新完成後呼叫,此時可以獲取dom節點。 還有乙個解除安裝鉤子函式

11、componentwillunmount()

元件將要解除安裝時呼叫,一些事件監聽和定時器需要在此時清除。

我是參考這個鏈結的。詳細請看:

React 生命週期 生命週期方法

生命週期 掛載 更新 解除安裝 元件被建立 執行初始化 並被掛載到dom中,完成元件的第一次渲染 constructor props getderivedstatefromprops props,state render componentdidmount 元件被建立時會首先呼叫元件的構造方法,接受...

react 生命週期

首次例項化 例項化完成後的更新 元件已存在時的狀態改變 生命週期共提供了10個不同的api。1.getdefaultprops 作用於元件類,只呼叫一次,返回物件用於設定預設的props,對於引用值,會在例項中共享。2.getinitialstate 作用於元件的例項,在例項建立時呼叫一次,用於初始...

react生命週期

盜圖一張 第一次進入頁面列印結果 1 parent constructor 2 parent conponentwillmount 3 parent render 4 initial render constructor 5 componentwillmount 6 render 7 compone...