调和阶段中setState内部干了什么?

简介: 调和阶段中setState内部干了什么?

问:调和阶段中setState内部干了什么?


答:

当调用 setState 时,React会做的第一件事情是将传递给 setState 的对象合并到组件的当前状态,

这将启动一个称为和解(reconciliation)的过程。和解(reconciliation)的最终目标是以最有效的方式,根据这个新的状态来更新UI。 为此,React将构建一个新的 React 元素树(您可以将其视为 UI 的对象表示)。

一旦有了这个树,为了弄清 UI 如何响应新的状态而改变,React 会将这个新树与上一个元素树相比较( diff )。


通过这样做, React 将会知道发生的确切变化,并且通过了解发生什么变化,只需在绝对必要的情况下进行更新即可最小化 UI 的占用空间。


目录
相关文章
|
存储 Kubernetes 调度
|
存储 前端开发 JavaScript
WEB前端开发中如何实现大文件上传?
WEB前端开发中如何实现大文件上传?
1366 3
WEB前端开发中如何实现大文件上传?
|
前端开发 JavaScript
useState和useReducer的区别?
useState和useReducer的区别?
355 0
|
安全
[UDS] --- SecurityAccess 0x27 service
[UDS] --- SecurityAccess 0x27 service
737 0
|
Python
python基础篇:什么是作用域?具体的作用是什么?
python基础篇:什么是作用域?具体的作用是什么?
200 3
|
消息中间件 算法 Linux
【Linux】对system V本地通信的内核级理解
【Linux】对system V本地通信的内核级理解
104 0
|
Apache
hooks为什么不能在条件语句中使用,如果修改源码,怎么能让它支持条件语句?
hooks为什么不能在条件语句中使用,如果修改源码,怎么能让它支持条件语句?
205 1
|
供应链 关系型数据库 MySQL
Mysql 设计超市经营管理系统,包括员工库存表(stock) 和 仓库表(warehouse)
Mysql 设计超市经营管理系统,包括员工库存表(stock) 和 仓库表(warehouse)
738 0
Mysql 设计超市经营管理系统,包括员工库存表(stock) 和 仓库表(warehouse)
|
JavaScript
用最简单的方式手撕Js中的call & bind
前言 好久没有更新过博客了,最近项目进度比较紧张,每天都在加班,学习的时间少之又少,目前这家公司的技术栈以尤大大的Vue+饿了吗的elementui为主导,项目中很少会用到 call & bind,昨天复习了一下原型链的知识,感觉比之前的理解又深入了一个层次,两大基类(Function & Object)的概念愈发强烈,今天抛开原型链,来说一说,call & bind。
142 0
|
数据可视化 Java 开发工具
天猫精灵体验:天气小助手开发
猫精灵技能应用开发平台是阿里巴巴天猫精灵面向不同类型的广大开发者推出的技能应用开发、接入平台。 该平台提供了从语音交互模型定义、语义解析理解能力,到技能开发、测试、部署的一整套开发工具和便捷的可视化操作工作台,帮助开发者高效地将各类技能应用快速接入到天猫精灵音箱以及精灵生态硬件终端。
469 0
天猫精灵体验:天气小助手开发