React 核心源码解析
如果你问一个 React 面试题:”setState 之后发生了什么?”,标准答案应该是——React 创建 update 对象、调度更新、经过 reconciler 的 diff 过程、最后 commit 到 DOM。但如果追问:”reconciler 是怎么遍历 Fiber 树的?diff 算法的 O(n) 是怎么做到的?”,能回答清楚的人就少很多了。
这篇文章从 React 源码的调用链路出发,追溯从 ReactDOM.render 到真实 DOM 更新的完整过程。重点放在两个核心机制上:Fiber 架构为什么要替代 Stack Reconciler,以及 diff 算法做了哪些假设把复杂度从 O(n³) 降到 O(n)。