初始化階段
constructor
- 在元件掛載之前執行,呼叫super(props),用來將父元件傳來的props繫結到這個類中,使用this.props將會得到。
- 定義狀態
- 狀態初始化也可以有父元件傳遞過來的屬性來進行賦值
- static getderivedstatefromprops ( nextprops,prevstate ) {}
- 在元件例項化後,和接受新的props後被呼叫。他必須返回乙個物件來更新狀態,或者返回null表示
- 新的props不需要任何state的更新。
- componentwillmount () {} 元件即將掛載
- 資料請求
- 將請求來的資料賦值給當前元件的狀態
- render 函式
- 當他被呼叫時,他將計算this.props和this.state,返回乙個型別
- componentdidmount
- 元件裝載結束,將vdom 渲染成了真實dom
- 操作真實dom( 第三方例項化 )
- 資料請求 ( 阿里用 )
更新階段
-當元件mount到頁面中之後,就進入了執行中階段,在這裡有5個鉤子函式,但是這5個函式只有在資料(屬性、狀態)傳送改變的時候才會執行
componentwillreceiveprops
接下來就會執行shouldcomponentupdate,這個函式的作用:
當屬性或狀態傳送改變後控制項是否要更新,提高效能,返回true就更新,否則不更新,預設返回true
接收nextprop、nextstate,根據根據新屬性狀態和原屬性狀態作出對比、判斷後控制是否更新
componentwillupdate,在這裡,元件馬上就要重新render了,多做一些準備工作,不要在這裡修改狀態,
否則會死迴圈相當於vue中的beforeupdate
render,重新渲染dom
componentdidupdate,在這裡,新的dom結構已經誕生了,相當於vue裡的updated
銷毀階段
當元件被銷毀之前的一剎那,會觸發componentwillunmount
相當於vue裡的beforedestroy,
vue在呼叫$destroy方法的時候就會執行beforedestroy,然後元件被銷毀,這個時候元件的dom結構還存在於頁面結構中,也就說如果想要對殘留的dom結構進行處理必須在destroyed處理,但是react執行完
錯誤處理
import react from
'react'
class
error
extends
react.component;}
componentdidcatch
(error, info));
}errorhandle=(
)=>)}
render()
<
/div>)}
return
(>
丟擲錯誤
<
/button>
<
/div>);
}}export
default error
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...