调用setState后发生了什么?

简介: 调用setState后发生了什么?

调用setState后发生了什么?

  1. 代码中调用 setState 函数之后,React 会将传入的参数对象与组件当前的状态合并,然后触发所谓的调和过程(Reconciliation)。
  2. 经过调和过程,React 会以相对高效的方式根据新的状态构建 React 元素树并且着手重新渲染整个 UI 界面;
  3. React 得到元素树之后,React 会自动计算出新的树与老树的节点差异,然后根据差异对界面进行最小化重渲染;
  1. 在差异计算算法中,React 能够相对精确地知道哪些位置发生了改变以及应该如何改变,这就保证了按需更新,而不是全部重新渲染。

setState是异步还是同步:

详情链接

合成事件中是异步

钩子函数中的是异步

原生事件中是同步

setTimeout中是同步

相关文章
|
安全 Java 编译器
kotlin面试题
kotlin面试题
801 1
|
存储 缓存 前端开发
react怎么只让接口请求一次
react怎么只让接口请求一次
228 0
|
11月前
|
前端开发 API 开发者
React 文件上传组件 File Upload
本文详细介绍了如何在 React 中实现文件上传组件,从基础的文件选择和上传到服务器,再到解决文件大小、类型限制、并发上传等问题,以及实现多文件上传、断点续传和文件预览等高级功能,帮助开发者高效构建可靠的应用。
768 12
|
存储 前端开发 JavaScript
【利用AI刷面试题】50道前端基础面试题(二)
【利用AI刷面试题】50道前端基础面试题
|
SQL 关系型数据库 API
SQLAlchemy 2.0 中文文档翻译完成
SQLAlchemy 2.0 中文文档翻译完成
411 1
|
存储 JSON 前端开发
react保姆级搭建新项目
此文主要以ts+vite+router6+antd 快速搭建一个react项目,适用于初学者,用于学习交流
348 2
|
Android开发 虚拟化 异构计算
一文搞定Android VSync机制来龙去脉
一文搞定Android VSync机制来龙去脉
911 0
|
消息中间件 NoSQL 算法
第一次凡尔赛,字节跳动3面+腾讯6面一次过,谈谈我的大厂面经
简单来说,就如标题一样,我今天也想要凡尔赛一次,原来大厂的面试也没有想象中的那么难,字节跳动3面+腾讯6面,就这么一次性过了,下面就细细聊聊我的大厂面经吧,希望能够给金三银四要面试的朋友提供一些经验。
|
缓存 资源调度 前端开发
【微前端】手把手教你从0到1实现基于Webpack5 模块联邦(Module Federation)的微前端~(中)
【微前端】手把手教你从0到1实现基于Webpack5 模块联邦(Module Federation)的微前端~(中)
|
小程序 JavaScript 前端开发
微信小程序上传头像和昵称持久化保存
微信小程序上传头像和昵称持久化保存
1774 0