React生命週期

2021-09-22 17:49:13 字數 1636 閱讀 2937

初始化階段

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