
获得徽章 0
- 川藏第十三天,巴塘-我也不知道是哪里 90公里
爬坡到海通兵站,没有攻略上的住宿点,往前骑行7公里住宿到一个村子里面的小旅馆,住宿环境真一言难尽,还好有地方住。爬到晚上九点多,离芒康还有十五公里
进西藏了今天2337 - #知识点记录# React 中的 setState 同步异步的总结:
1. setState 只在合成事件和钩子函数中是“异步”的,在原生事件和 setTimeout 中都是同步的。
2. setState 的“异步”并不是说内部由异步代码实现,其实本身执行的过程和代码都是同步的,只是合成事件和钩子函数的调用顺序在更新之前,导致在合成事件和钩子函数中没法立马拿到更新后的值,形式了所谓的“异步”,当然可以通过第二个参数 setState(partialState, callback) 中的 callback 拿到更新后的结果。
3. setState 的批量更新优化也是建立在“异步”(合成事件、钩子函数)之上的,在原生事件和 setTimeout 中不会批量更新,在“异步”中如果对同一个值进行多次 setState ,setState 的批量更新策略会对其进行覆盖,取最后一次的执行,如果是同时 setState 多个不同的值,在更新时会对其进行合并批量更新。展开25