static getderivedstatefromprops()這個鉤子函式,在掛載,更新時都會被呼叫,這是個靜態方法,不可用this!!!切記
static getderivedstatefromprops(nextprops, prevstate) 歲了,我成年啦!!!`}}
return 歲了,我還是小孩子!!!`
}}//第乙個引數nextprops,是父元件傳遞最新的props,
//第二個引數prevstate,是自己內部state,上次的state
//裡面可以做之前componentwillreceiveprops裡面的所有處理,
//例如這裡是父元件傳遞的age值如果大於等於18歲,就顯示成年了,false就顯示小孩子
//如果不想更新state,可以直接return null
getsnapshotbeforeupdate()getsnapshotbeforeupdate(prevprops, prevstate)
這個方法在 render() 之後,componentdidupdate() 之前呼叫。
兩個引數 prevprops 表示更新前的 props,prevstate 表示更新前的 state。
返回值稱為乙個快照(snapshot),如果不需要 snapshot,則必須顯示的返回 null —— 因為返回值將作為 componentdidupdate() 的第三個引數使用。所以這個函式必須要配合 componentdidupdate() 一起使用。
這個函式的作用是在真實 dom 更新(componentdidupdate)前,獲取一些需要的資訊(類似快照功能),然後作為引數傳給 componentdidupdate。例如:在 getsnapshotbeforeupdate 中獲取滾動位置,然後作為引數傳給 componentdidupdate,就可以直接在渲染真實的 dom 時就滾動到需要的位置。
componentdidupdate(prevprops, prevstate, snapshot)
二 React中的更新
建立更新的方式 reactdom.render hydrate 初次渲染,然後是setstate forceupdate 步驟 建立reactroot 建立fiberroot和rootfiber 建立更新,這樣我們的應用就到了更新排程。什麼是fiberroot 整個應用的起點,包含應用掛載的目標節點...
React的生命週期鉤子函式
一 react的生命週期鉤子函式舊版 掛載時,初始化階段 1 constructor 如果不初始化state或不進行方法繫結,則不需要為react元件實現建構函式 2 componentwillmount 以前在這裡進行請求資料,現在即將被廢棄 3 render 初次渲染元件的內容 4 compon...
react生命週期的鉤子函式
生命週期,鉤子函式 掛載階段 一 constructor 第乙個執行 1.可以初始化元件狀態 2.可以給一些事件函式繫結this 注意 不能再內部呼叫setstate constructor 不能在內部呼叫setstate this.handleclick this.handleclick.bind...