React 生命週期

2021-09-28 23:40:44 字數 1839 閱讀 9685

元件第一次在dom樹渲染的過程

1)getdefaultprops() :

es5中設定預設的props(es6中defaultprops設定元件的預設的屬性)。

2)getinitialstate() :

es5中初始化state,此時可以訪問this.props。

3)componentwillmount() :

在元件被掛載前呼叫,整個生命週期只執行一次。

4)render():

渲染元件,建立虛擬dom,更新dom樹(不能更改state了),必須實現該方法。

5)componentdidmount():

在元件渲染之後呼叫,已經生成真實的dom節點,只執行一次。

元件被重新渲染的過程(初始化時均不呼叫)

1)componentwillreceiveprops(nextprops):

父元件的render()方法執行後就會呼叫。

2)shouldcomponentupdate(nextprops, nextstate):

當state或者props改變時呼叫,有返回值true/false。

若返回true,則繼續執行render();若返回false則放棄本次渲染(對於react效能優化非常重要)。

forceupdate會越過shouldcomponentupdate(nextprops, nextstate)重新渲染。

3)componentwillupdate(nextprops, nextstate):

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

4)render():

渲染元件

5)componentdidupdate():

元件更新完成後呼叫,此時可以獲取dom節點。

元件從dom樹中刪除的過程

1)componentwillunmount():

元件將要解除安裝時呼叫,將元件從dom樹移出,防止記憶體溢位(如:事件監聽、定時器)。

1.htmi

<

div

id>

div>

2.js

class components extends react.component 

} componentwillmount()

componentdidmount()

componentwillreceiveprops()

shouldcomponentupdate(nextprops,nextstate)

componentwillupdate()

componentdidupdate()

render()

else

return

(

請檢視下面的console

)

}}components.defaultprops =

constructor(props)

} refresh())

}} render()/>

this.refresh()}>更新component

) }}//

這個元件是沒有呼叫的,但是,getdeafultprops直接執行了

var test =react.createclass(

},render(),

})/* */

reactdom.render(

更多專業前端知識,請上

【猿2048】www.mk2048.com

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