;通过设置 key 属性来标识一组同级子元素在渲染前后是否保持不变.在实践中, 以上两个假设在绝大多数场景下都成立.2.1 Diffling算法描述不同类型的元素/组件当元素的标签或组件名发生变化, 直接卸载并替换以此元素作为根节点的整个子树..., 使得一些需要高优先级处理的操作如用户输入、平滑动画等被阻塞, 严重影响使用体验.时间切片(Time Slice)为了解决浏览器主线程的阻塞问题, 引出 时间切片 的策略——将整个工作流程分解成小的工作单元....3.1 Fiber节点一个Fiber节点就是一个JS对象, 其中的关键属性可分类列举如下:结构信息(构成链表的指针属性)return: 父节点child: 第一个子节点sibling: 右侧第一个兄弟节点...——DFS由前文我们可知, Fiber节点通过 return child sibling 三个属性相互连接, 整体构成一个单向链表结构,其调度方式就是 深度优先遍历 :以wipFiber树的Root节点作为第一个执行单元...Fiber, 同步地完成以下工作:构建Fiber链表: 为每个子元素创建Fiber, 并将父Fiber的 child 属性指向第一个子Fiber, 然后按顺序将子Fiber的 sibling 属性指向下一个子