React学习笔记(二)


1.关于setState同步异步问题

同步操作,异步行为

具体参考:https://juejin.cn/post/6992006476558499853 

react执行setState时会将其放入一个执行队列。

主要原因是,在 React 的生命周期以及绑定的事件流中,所有的 setState 操作会先缓存到一个队列中,在整个事件结束后或者 mount 流程结束后,才会取出之前缓存的 setState 队列进行一次计算,触发 state 更新。只要我们跳出 React 的事件流或者生命周期,就能打破 React 对 setState 的掌控。最简单的方法,就是把 setState 放到 setTimeout 的匿名函数中。