react生命週期

2021-10-12 09:41:21 字數 1749 閱讀 4241

生命週期函式是自動執行的,具體某個生命週期想幹什麼,需要我們自己去寫

1.constructor(建構函式)

2.getderive的statefromprops

static getderivedstatefromprops(props, state)
getderive的statefromprop會在render方法前呼叫,並且在初始掛在及後續更新時都會被呼叫,它應返回乙個物件來更新state,如果返回null則不返回任何值。

state的值在任何時候都取決於props。

3.shouldcomponentupdate

shouldcomponentupdate(nextprops,nextstate)
根據shouldcomponentupdate()的返回值,判斷react元件的輸出是否受當前state或props更改的影響。預設行為是state每次發生變化元件都回重新渲染。大部分情況下,應遵循預設行為。

當props或state發生變化時,shouldcomponentupdate()會在渲染執行前被呼叫。首次渲染或使用forceupdate()時不會呼叫該方法。

4.render: 當render被呼叫時,會檢查this.props和this.state的變化並返回虛擬dom。

5.getsnapshotbeforeupdate

getsnapshotbeforeupdate(prevprops,prevstate)
getsnapshotbeforeupdate()在最近一次渲染輸出前呼叫。它使元件能在發生改變前從dom捕獲一些資訊。此生命週期的任何返回值將作為引數傳遞給componentdidupdate()。

6.componentdidmount

componentdidmount()
componentdidmount()會在元件掛載後立即呼叫。此處是例項化請求的好地方

可以在componentdidmount()裡直接呼叫setstate()。它將觸發額外渲染,但此渲染發生在瀏覽器更新螢幕之前。保證了即使在render()兩次呼叫的情況下,使用者也不會看到中間狀態。謹慎使用該模式,因為它可能會導致效能問題。

7.componentdidmount

componentdidupdate(prevprops, prevstate, snapshot)
componentdidmount()會在更新後被立即呼叫。首次渲染不會執行此方法。

也可以在componentdidmount()中直接呼叫setstate(),但請注意它必須被包裹在乙個條件語句中,否則會在導致死迴圈。

8.componentwillunmount

componentwillunmount()
componentwillunmount()會在元件解除安裝及銷毀之前直接呼叫。此方法中執行必要的清理操作,例如:清理timer,取消網路請求或清除在componentdidmount()中建立的訂閱等。

componentwillunmount()中不應呼叫setstate(),因為該元件將永遠不會重新渲染,元件例項解除安裝後,將永遠不會掛載它。

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...