1.执行方式
@在reaact17中
- 在组件生命周期或React合成事件中,是异步;
- 在setTimeout或者原生dom事件中,是同步;
这里的异步是的是类似异步,不是真正意义上的异步,这里的异步指的是react吧useState 和setState 放在其他代码之后执行,而在17中的setTimeout和原生dom事件中并没有类似异步的执行
@在react18中所有都是异步执行的
@这样做的好处:
可以显著的提高性能: 若每次调用都会被界面重新渲染,效率极低,通过获取多个更新之后,进行批量的更新
2.批量更新
对同一个值进行多次 setState, setState 的批量更新策略会对其进行覆盖,取最后一次的执行结果(uesstate一样),(只针对17异步更新的时候)