React架构分层:

Scheduler:调度器,调度任务优先级,优先级高的任务进入协调器Reconciler
Reconciler:协调器,负责找出变化的组件
Renderer:渲染器,负责将变化的组件渲染出来

对应目录:

React文件夹
React核心,包含几个全局API,如:

  • React.createElement
  • React.Component
  • React.Children

这些API跨平台通用

scheduler文件夹
Scheduler调度器实现

react-reconciler文件夹
需要重点关注的文件夹,一边对接Scheduler,一边对接不同平台的Renderer,构成了整个 React16 的架构体系。

Renderer相关文件夹
不同平台对应不同的Renderer文件夹

  1. - react-art
  2. - react-dom # 注意这同时是DOMSSR(服务端渲染)的入口
  3. - react-native-renderer # 用于native的渲染
  4. - react-noop-renderer # 用于debug fiber(后面会介绍fiber
  5. - react-test-renderer

shared文件夹
源码中其他模块公用的方法和全局变量,比如在shared/ReactSymbols.js中保存React不同组件类型的定义。

  1. // ...
  2. export let REACT_ELEMENT_TYPE = 0xeac7;
  3. export let REACT_PORTAL_TYPE = 0xeaca;
  4. export let REACT_FRAGMENT_TYPE = 0xeacb;
  5. // ...