Skip to content

React Chronicle:资料与注释 ​

本页列出这部 Chronicle 使用的主要资料。资料按“同期代码与讨论 → 官方 RFC / 发布说明 → 参与者回忆 → 本文综合判断”的优先级组织。访问日期除特别说明外均为 2026-08-07。

如何阅读这些来源 ​

  • 同期一手资料最适合确认“当时实际合入了什么、维护者公开承诺了什么”。提交、PR 和源码可以证明实现,却不一定完整记录动机。
  • RFC 与官方文章通常同时包含动机、替代方案和迁移策略,但仍代表项目方的叙述视角。
  • 参与者回忆能补足 React 开源前的内部历史。由于它们多写于事后,本文把它们标成“参与者回忆”,不与同期提交等量齐观。
  • 本文判断是把多份材料连成因果链后的工程解释,不冒充项目方原话。

1. 起源、开源与早期设计 ​

来源类型本文主要用途
React acknowledgements:React 的起源与 XHP、Bolt/FaxJS、SML 影响官方历史说明确认 XHP、Bolt、FaxJS、Jordan Walke 与 OCaml/SML 思想的关系。
Jordan Walke 访谈全文参与者回忆补充 FBolt、广告系统压力、函数式 UI 和 React Native 原型的内部背景。
Our First 50,000 Stars官方团队回顾补充 2013 开源前后的演讲、JSX 反应、命名与早期推广过程。
Initial public release commit 75897c2同期代码锚定 2013-05-29 初始公开版及其真实文件结构。
Why React?(2013)同期官方文章确认 React 当时对“不是 MVC、没有模板、可组合组件、重新渲染”的公开定位。
ReactCompositeComponent.js at initial release同期源码观察 createClass、mixin、生命周期协议,以及“render 不应有副作用”的早期约束。
ReactReconcileTransaction.js at initial release同期源码解释早期 reconciler 如何用 transaction 包装事件开关、DOM selection 与 mount-ready 回调。
EventPluginHub.js at initial release同期源码说明合成事件不是简单的浏览器事件别名,而是提取、排队和派发管线。

2. Flux、生态与 renderer 分离 ​

来源类型本文主要用途
An Application Architecture For React(Flux,2014)同期官方文章确认 Flux 解决的是应用数据流,而 React core 有意维持较窄职责。
Introducing React Native(2015)同期官方文章确认“learn once, write anywhere”、原生 host view 与 React 编程模型复用。
React v0.14 release官方发布说明说明 react 与 react-dom 拆包、无状态函数组件和 DOM node 返回行为的变化。
Create React App repository代码与项目史用于讨论 2016 后“零配置起步”怎样降低 React 工具链门槛。
Sunsetting Create React App(2025)官方决策说明解释 React 推荐路径为何从通用 build tool 转向 framework 或现代构建工具。

3. Fiber 重写 ​

来源类型本文主要用途
PR #6690 — New Reconciler Infra同期 PR / 代码Fiber 的可验证起点:Noop renderer、nextUnitOfWork、高低优先级回调与 deadline。
PR #6981 — simple updates and fiber pooling同期 PR / 代码确认 alternate、current/work-in-progress 双树及“最多两棵树”的对象池设计。
PR #7154 — Host Side Effects同期 PR / 代码确认副作用链、先完成 reconciliation 再调用 host environment 的 commit 边界。
React Fiber Architecture维护者解释文档帮助解释 incremental rendering、priority、pull-based scheduling 与 Fiber 的概念模型。
React v16.0 release官方发布说明确认 Fiber 上线时的 error boundary、fragment、portal、新 SSR 与兼容策略。
Update on Async Rendering(2018)官方迁移说明解释旧 componentWill* 生命周期为何不适合可重放/可中断 render。
React v17.0 release官方发布说明说明事件委托从 document 移到 root 及“无新功能版本”的渐进升级意图。

4. Hooks ​

来源类型本文主要用途
RFC #68 — React HooksRFC同时引用动机、采用策略、Rules of Hooks、旧闭包和全局 render state 等已知代价。
React v16.8: The One With Hooks官方发布说明锚定 Hooks 稳定发布及其渐进采用定位。
ReactFiberHooks.js at v16.8.0同期源码确认 Hook 记录是 Fiber memoizedState 上的链表,dispatcher 决定 mount/update 行为,并按调用顺序配对。
Rules of Hooks官方参考文档用于区分 API 习惯与实现所需的稳定调用顺序。

5. Concurrent React、Suspense 与服务端渲染 ​

来源类型本文主要用途
React 18 release官方发布说明确认 concurrent rendering 通过 createRoot、transitions、automatic batching 与 Suspense 等 feature 渐进启用。
React 18 working group discussions同期工作组讨论观察命名、迁移、外部 store、一致性和生态兼容问题如何公开讨论。
ReactFiberLane.new.js at v18.2.0同期源码说明 lanes 如何用位掩码表示 sync、input、default、transition、retry、idle、offscreen 等工作集合。
useSyncExternalStore working-group discussion设计讨论解释 concurrent rendering 对外部可变 store 快照一致性的要求。
New Suspense SSR Architecture in React 18维护者设计说明解释 streaming HTML、Selective Hydration 与 Suspense boundary 的协作。

6. Server Components、Flight 与 Actions ​

来源类型本文主要用途
Data Fetching with React Server Components(2020)官方研究预告锚定 RSC 首次公开时的目标:零 client bundle 组件、直接访问 server data、保留 client state。
RFC #188 — Server ComponentsRFC区分 Server/Client Component 能力、序列化边界、bundler 集成与渐进采用。
ReactFlightServer.js at v19.2.0同期源码观察 chunk、client/server reference、thenable、hint 与 stream config 如何组成 Flight server。
React 19 release官方发布说明确认 Actions、useActionState、useOptimistic、use、ref-as-prop 与 RSC 稳定边界。
Critical Security Vulnerability in React Server Components(2025)官方安全公告说明 Server Function/RSC 协议进入可信服务端边界后带来的安全责任;具体修复版本应以最新公告为准。
React security blog index官方更新入口由于 2025–2026 年存在连续后续公告,本文不固定一组可能过时的“安全版本”,而要求读者查最新公告。

7. Compiler、React 19.2 与治理 ​

来源类型本文主要用途
React Compiler v1.0官方发布说明确认 Compiler 1.0、React 17+ 兼容、Prepack 经验、CFG/HIR 重写、渐进 gating 与 lint 诊断。
HIR.ts at v19.2.0同期源码确认 AST → HIR → analysis → Reactive Scopes → codegen → AST 的核心数据流。
React 19.2官方发布说明确认 <Activity>、useEffectEvent、cacheSignal、Performance Tracks 与 partial pre-rendering。
The React Foundation(2026)官方治理公告确认 React、React Native、JSX 转入 Linux Foundation 托管的独立基金会,以及技术治理与董事会职责分离。
React Foundation site官方组织资料用于核对组织使命、成员与治理资料的持续更新。

8. 版本与仓库元数据 ​

来源类型本文主要用途
React releases官方仓库发布记录校验版本时间、补丁序列与当前维护分支。
React repository官方代码仓库所有代码快照、提交、PR 与文件链接的 canonical source。
React RFCs repository官方 RFC 仓库查阅被提议、接受、推迟或仍在演化的公共设计。

注释与不确定性 ​

React 开源前的内部时间线 ​

Bolt、FaxJS、FBolt、XHP-JS、React Native iOS 原型等名称来自官方 acknowledgements、Jordan Walke 访谈和团队回顾。它们的精确日期、代码边界与命名在不同回忆中并不总完全一致。本文只把多份来源交叉支持的顺序写成“史料事实”;对思想影响和因果关系使用“参与者回忆”或“本文判断”。

“Virtual DOM”不是一个单独可定位的发明 ​

初始提交没有一个名为 VirtualDOM 的核心模块。轻量 element、child reconciliation、key、transaction、DOM operation 与事件系统共同构成开发者后来称作 Virtual DOM 的行为。本文因此避免把它写成一个孤立算法。

Fiber 的动机与实现 ​

Fiber 的可中断调度目标可从 PR、架构文档和后续发布说明确认;但早期 PR 明显是探索性实现,包含未完成分支、TODO 和被后来替换的字段。本文按提交顺序描述其形成,不把最终 lanes/commit 架构倒灌成 2016 年一次完成的蓝图。

Server Components 与 framework ​

RSC 的 React 协议与产品可用体验不是同一层。模块图、manifest、路由、缓存、部署和 Server Function endpoint 大多由 framework/bundler 实现。本文讨论的是边界如何形成,不把某个 framework 的具体行为当作 React core 的永久规范。

2026 年后的内容 ​

Chronicle 的“现在”截点为 2026-08-07。React release、安全公告、基金会技术治理和 Compiler 支持范围仍会变化;涉及部署与安全时应优先查看最新官方 release/advisory,而不是把本文当作实时兼容矩阵。

Engineering history, reconstructed from primary sources.