React setState
创始人
2025-01-15 02:04:45
0

老生常谈之setState 是同步的还是异步的?

设想setState是同步的,那也就是每次调用setState都要进行新旧虚拟DOM的对比,然后将差异化的dom更新到页面上,性能损耗很大

所以react把setState设置为了异步,当状态更新时不能立即拿到更新后的状态,而是批量进行更新

调用setState之后React都做了什么

首先上图

上图就是setState执行后的react所做的事情

1、enqueueSetState 方法将传入的状态放到组件的状态队列里面

2、enqueueUpdate 来处理将要更新的实例对象

3、enqueueUpdate在处理组件实例时,会先判读啊batchingStrategy对象中isBatchingUpdates是true还是false

4、如果是true,说明组件正在批量更新,任何需要更新的组件需要进入dirtyComponents队列进行等待

5、如果是false,就正常进行批量更新

相关内容

热门资讯

【python】PyQt5对象... ✨✨ 欢迎大家来到景天科技苑✨✨🎈🎈 养成好习惯,先赞...
联合体和枚举<C语言> 导言        在C语言中除了结构体外,联合体和枚举也是自定义类型,...
看见更大的Python世界:P... ✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)...
【C++奇妙冒险】日期类Dat... 文章目录前言日期类Date的接口设计构造函数和打印函数获取日期并判断日期是否合法日期类的大小比较关系...
【python】PyQt5各个... ✨✨ 欢迎大家来到景天科技苑✨✨🎈🎈 养成好习惯,先赞...
Redis基础教程(十八):R... 💝💝💝首先,欢迎各位来到我的博客&#x...
VS Code 配置 C/C+... 文章目录一、软件下载1. 下载 VS Code 安装工具2. 下载 MinGW-W64二、安装 VS...
玩转鸿蒙NXET之组件导航与路... 页面路由(@ohos.router)页面路由指在应用程序中实现不...
大模型/NLP/算法面试题总结... BERT(Bidirectional Encoder Representations ...
Hadoop-20 Flume... 章节内容上一节完成了如下的内容:编写Agent Conf配置文件收集Hive数据汇聚到...