react生命週期是使用react開發中非常重要的一環。概括來說react的生命週期分為三個階段: mounting、updating、unmounting
mounting 階段出發的方法有:
constructor()
componentwillmount()
render()
componentdidmount()
updating階段出發的方法有:
componentwillreceiveprops()
shouldcomponentupdate()
componentwillupdate()
render()
componentdidupdate()
unmounting階段觸發的方法
componentwillunmount()
現在逐一說一下每個方法的用法
constructor
()
建構函式用來初始化state和props,元件建立的時候呼叫一次。
componentwillmount
()
見名知意,元件將要掛載,在元件掛載之前呼叫,此方法還能修改state(呼叫setstate方法)
render
()
必選的方法,建立虛擬的dom,該方法中有兩點需要特別注意:
1、不能修改state
2、返回的元件中只能有乙個頂級元件
componentdidmount
()
真是的dom被渲染後呼叫,所以可以在該方法中獲取真實的dom節點,可以用refs獲取dom節點
componentwillreceiveprops
()
元件接收到新的props時呼叫;父元件發生render()的時候也會呼叫(不管props有沒有更新)。該方法中可以修改state和props
shouldcomponentupdate
()
元件是否可以更新。返回乙個boolean值,預設為true。如果返回false則不會觸發元件的更新。每次setstate都會觸發該方法,但是有些時候資料的變化並不需要重新渲染元件,所以可以在這個方法中做判斷來決定是否要更新元件(返回true或false)
componentwillupdate
()
元件將要更新。可以和componentwillmount()對應起來,該方法中不可以修改state或props,否則又會迴圈到之前的生命週期方法中。呼叫forceupdate()方法也會觸發該方法。
componentdidupdate
()
元件完成更新後呼叫。可以方法dom元素,可以和componentdidmount()對應起來
componentwillunmount
()
元件將要銷毀前呼叫,一般做一些清理工作,一般在componentdidmount註冊的事件可以在該方法中刪除。比如建立的計時器和事件***。
我本人總結了乙個生命週期的流程圖,大家參考:
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...