一些思考来自:https://blog.csdn.net/TanMengyi/article/details/125187058
setState会将多个调用合并为一个来执行,也就是说,当执行setState的时候,state中的数据并不会马上更新。
setState和useState是看起来像异步的同步,因为react的合并机制,多次调用不会立即更新,setState是合并state,useState是执行最后一次,延迟执行但本身还在一个事件循环,如果脱离react事件,如原生事件或者setTimeout/promise.then里执行setState和useState,就会得到同步代码。
在函数式组件中使用setTimeout会出现:数据只在初始的时候变了一次,之后就不会变更了。这是因为:函数式 + hooks的实现有关系。