React setState

老生常谈之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,就正常进行批量更新

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 12:06:05       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 12:06:05       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 12:06:05       90 阅读
  4. Python语言-面向对象

    2024-07-10 12:06:05       98 阅读

热门阅读

  1. 贪心算法合集一

    2024-07-10 12:06:05       26 阅读
  2. 索引知识总结

    2024-07-10 12:06:05       28 阅读
  3. Oracle怎么实现RSA加密解密

    2024-07-10 12:06:05       28 阅读
  4. 前端判断场景和方式

    2024-07-10 12:06:05       23 阅读
  5. AWS EKS上GPU工作负载自动扩缩容的异常排查指南

    2024-07-10 12:06:05       25 阅读
  6. 深入WebKit内核:揭秘HTML与XML的识别之谜

    2024-07-10 12:06:05       25 阅读