React 的 Fiber 架构与 reconciliation(协调)过程是怎样的?

Fiber 是 React 16 引入的虚拟栈帧,把渲染任务拆成可中断/恢复的小单元。

reconciliation 两阶段:

  1. render 阶段(可中断):从根开始,对比新旧 Virtual DOM,生成 Fiber 树上的「副作用标记」(增/删/改),这个过程叫 diff。采用同层比较,用 key 识别元素身份,列表无 key 会退化为逐位对比(性能差)
  2. commit 阶段(不可中断):把标记好的副作用一次性同步到真实 DOM,触发 useLayoutEffect / useEffect

Fiber 的价值:render 阶段可被高优先级任务(如用户输入)打断并恢复,避免长任务卡住主线程(这是并发渲染的基础)。

同分类其他题目