云鼎大数据888元建站,做关键词优化,网站怎么做ipfs,建筑模板做凳子setState 只在合成事件和钩子函数中是“异步”的#xff0c;在原生事件和 setTimeout 中都是同步的。 合成事件#xff1a;就是react 在组件中的onClick等都是属于它自定义的合成事件 原生事件#xff1a;比如通过addeventListener添加的#xff0c;dom中的原生事件 setS… setState 只在合成事件和钩子函数中是“异步”的在原生事件和 setTimeout 中都是同步的。 合成事件就是react 在组件中的onClick等都是属于它自定义的合成事件 原生事件比如通过addeventListener添加的dom中的原生事件 setState的“异步”并不是说内部由异步代码实现其实本身执行的过程和代码都是同步的只是合成事件和钩子函数的调用顺序在更新之前导致在合成事件和钩子函数中没法立马拿到更新后的值形式了所谓的“异步”当然可以通过第二个参数 setState(partialState, callback) 中的callback拿到更新后的结果。 setState 的批量更新优化也是建立在“异步”合成事件、钩子函数之上的在原生事件和setTimeout 中不会批量更新在“异步”中如果对同一个值进行多次 setState setState 的批量更新策略会对其进行覆盖取最后一次的执行如果是同时 setState 多个不同的值在更新时会对其进行合并批量更新