setState同步异步

setState 何时同步何时异步?

点击查看代码
1、setState 只在合成事件(react 为了解决跨平台,兼容性问题,自己封装了一套事件机制,
代理了原生的事件,像在 jsx 中常见的 onClick、onChange 这些都是合成事件)和钩子函数(生命
周期)中是“异步”的,在原生事件和 setTimeout 中都是同步的
2、setState 的“异步”并不是说内部由异步代码实现,其实本身执行的过程和代码都是同步的,
只是合成事件和钩子函数的调用顺序在更新之前,导致在合成事件和钩子函数中没法立马拿到更
新后的值,形式了所谓的“异步”,当然可以通过第二个参数 setState(partialState,callback)中的
callback 拿到更新后的结果
3、setState 的批量更新优化也是建立在“异步”(合成事件、钩子函数)之上的,在原生事件
setTimeout 中不会批量更新,在“异步”中如果对同一个值进行多次 setState,setState 的批量更
新策略会对其进行覆盖,取最后一次的执行,如果是同时 setState 多个不同的值,在更新时会对
其进行合并批量更新

__EOF__

本文作者Sternstunde
本文链接https://www.cnblogs.com/strundent/p/16883402.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Cherishe  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示