react总结之setState的异步和同步

it2025-07-10  16

在react中setState的更新state是同步还是异步的,跟我们使用的方式有关系!

同步更新

当setState在react的事件合成机制生成和生命周期函数对state更新时,是同步更新state!

异步更新

当setState在react的事件是原生的js绑定的事件、ajax、setTimeout、setIntervla等时是异步更新state!

原因

react在调用合成事件或者生命周期函数之前会先调用batchedUpdates,然后会把变量isBatchingUpdates的值由默认值false修改为true,当isbatchingUpdates的值为true的时候就不会同步更新state,否则就同步更新!

好处

这样做的好处就是性能方面的提升,在react的合成事件函数与生命周期函数中会进行批量更新优化,只执行最后一次!

最新回复(0)