useState執(zhí)行順序

const [data, setData ] = useState()

usestate是聲明在組件內(nèi)部的數(shù)據(jù),相當(dāng)于組件內(nèi)部store數(shù)上的數(shù)據(jù)

更改他的唯一方式就是通過setData()來更改,

state數(shù)據(jù)更改,會觸發(fā)頁面上的state變化,會觸發(fā)組件重新render()

如果新的 state 需要通過使用先前的 state 計算得出,那么可以將函數(shù)傳遞給 setState。該函數(shù)將接收先前的 state,并返回一個更新后的值。

setData( state => state + 1)


react觸發(fā)render的三種方法

一、通過setState

二、this.forceUpdate()

三、通過狀態(tài)管理,如mobx,redux等

四、props改變,組件重新渲染

setState改變后,改變值,沒有觸發(fā)render()

https://blog.csdn.net/weixin_45621877/article/details/108720014

https://blog.csdn.net/weixin_44730897/article/details/106526136

state hook設(shè)置值,如果引用地址不變,是不觸發(fā)重新渲染的,但是值是設(shè)置進(jìn)去了

react中數(shù)組如果引用地址不變,是不觸發(fā)重新渲染的,但是值是設(shè)置進(jìn)去了

這里要根據(jù)react的渲染機(jī)制源碼,因為react 會判斷舊狀態(tài)和新狀態(tài)是否有變化,如果沒有變化就不渲染,所以要改變地址告訴render 是新狀態(tài)要重新渲染

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容