React架构分层:
Scheduler:调度器,调度任务优先级,优先级高的任务进入协调器Reconciler
Reconciler:协调器,负责找出变化的组件
Renderer:渲染器,负责将变化的组件渲染出来
对应目录:
React文件夹:
React核心,包含几个全局API,如:
- React.createElement
- React.Component
- React.Children
这些API跨平台通用
scheduler文件夹:
Scheduler调度器实现
react-reconciler文件夹:
需要重点关注的文件夹,一边对接Scheduler,一边对接不同平台的Renderer,构成了整个 React16 的架构体系。
Renderer相关文件夹:
不同平台对应不同的Renderer文件夹
- react-art
- react-dom # 注意这同时是DOM和SSR(服务端渲染)的入口
- react-native-renderer # 用于native的渲染
- react-noop-renderer # 用于debug fiber(后面会介绍fiber)
- react-test-renderer
shared文件夹:
源码中其他模块公用的方法和全局变量,比如在shared/ReactSymbols.js中保存React
不同组件类型的定义。
// ...
export let REACT_ELEMENT_TYPE = 0xeac7;
export let REACT_PORTAL_TYPE = 0xeaca;
export let REACT_FRAGMENT_TYPE = 0xeacb;
// ...