这意味着当树上有1000个元素时, 需要10亿次比较, 显然远远不够高效.React在基于以下两个假设的基础上, 提出了一套复杂度为 O(n) 的启发式算法不同类型(即标签名、组件名)的元素会产生不同的树...节中我们介绍过, 在Fiber节点中有一个重要属性 alternate , 单词意为“备用”.实际上, 在React中最多会同时存在两棵Fiber树:当前显示在屏幕上、已经构建完成的Fiber树称为“Current...在Fiber架构下, 每个Fiber节点就是一个工作单元.在以下示例代码中, 我们使用浏览器提供的 requestIdleCallback 方法演示这个过程, 它会在浏览器空闲时执行一个workLoop..., 表明本次更新的 wipFiber树 构建完成, 进入下一步的提交更新阶段.3.4 提交更新阶段在进入本阶段时, 新的Fiber树已构建完成, 需要进行替换、更新或删除的Fiber节点也在其 effectTag..., 有助于理解在执行 setState 方法后都发生了什么:function useState(initial) { // 判断上一次渲染是否存在此Hook,如果存在就使用上一个state,否则创建新的