對於react中的this.setState的理解

1、this.setState第二個參數的做用:修改數據更新後最新的DOM結構
2、this.setState爲何是異步的?
1.setState只在合成事件和鉤子函數中是「異步」的,在原生事件和setTimeout中都是同步的。
2.setState的「異步」並非說內部由異步代碼實現,其實自己執行的過程和代碼都是同步的,只是合成事件和鉤子函數的調用順序在更新以前,致使在合成事件和鉤子函數中無法立馬拿到更新後的值,形式了所謂的「異步」,當然能夠經過第二個參數setState(partialState,callback)中的callback拿到更新後的結果。
3.setState的批量更新優化也是創建在「異步」(合成事件、鉤子函數)之上的,在原生事件和setTimeout中不會批量更新,在「異步」中若是對同一個值進行屢次setState,setState的批量更新策略會對其進行覆蓋,取最後一次的執行,若是是同時setState多個不一樣的值,在更新時會對其進行合併批量更新。
相關文章
相關標籤/搜索