setState的同步异步

setState的同步异步

setState为什么是异步的

  1. 即便是同步更新,也做不到同步更新props,props的更新必须是异步的,因为只有当父组件重新渲染的之后,才能传入新的props。如果需要立即更新props(也就是说立即重新渲染父组件),那么就必须放弃批处理,开发者需要多次调用setState,每次调用都会导致页面重新渲染,性能就下降了,为了保持状态的统一性,就要采用异步更新的方式。
  2. react中,状态的更新总不是按照顺序执行的,无论state是同步还是异步更新,react都会根据不同的调用源分配不同的优先级,异步操作使按照优先级更新状态成为可能,不会阻塞当前代码,不仅性能更优,还带来更好的体验。
  3. 异步的操作可以把多次对状态的维护整合为一次,这样就可以减少渲染的次数,优化性能。

setState可以同步执行,或者说避免合并

setState参数传入一个函数,这样react会将变化的函数放入一个执行栈中,依次执行,这样就可以避免合并了。这样就能实现通过状态去控制一个毫秒的秒表实现。

发布了6 篇原创文章 · 获赞 21 · 访问量 254

猜你喜欢

转载自blog.csdn.net/weixin_44525501/article/details/104412289
今日推荐