lisa的个人博客

慢慢理解世界,慢慢更新自己

0%

react的setState是同步还是异步

setState方法,既是同步也是异步,分情况。
同步:在原生事件和setTimeout中是同步的。
异步:在react的合成事件,类似于onClick,以及在钩子函数中是异步的。

个人理解,setState内部执行并不是异步的,由于react是在数据更新之前调用合成事件和钩子函数,所以在setState更新数据之后不能立即获取到最新数据,可以通过setState({},callback)回调函数进行获取。

setState批量更新优化,也是建立在’异步’之上的,在原生事件和setTimeout中只会执行一次,’异步’中多次对一个值进行setState,setState的批量更新策略会对其进行覆盖,取最后一次执行。