元件第一次在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...