项目目录
简介
- 项目结构:采用Monorepo的项目结构
packages(包)
- 该目录下有 35 个目录
react(基础包)(核心)
-
定义组件和管理组件内部状态
-
提供创建 react 组件、状态管理、生命周期管理等必要的函数
-
开发过程中使用的 api
-
react-dom(web 应用的渲染器)(核心)
- 将 React 组件转换为 DOM 节点,并渲染在浏览器上。
src
|-client //和 客户端 渲染相关
|-server //和 服务端 渲染相关
|-event //和 事件相关
react-reconciler(协调器)(核心)
- 通过实现协调算法(diff 算法)管理 react 状态的输入和输出
- 接受状态输入,将更新逻辑封装到回调函数
- 将回调函数放入 scheduler 进行调用执行
- 回调函数执行完成后获取到更新结果,交给渲染器(react-dom 或 react-native)渲染到页面上
scheduler(调度器)(核心)
- 管理任务的优先级和调度
- 通过调整任务的优先级,控制 react-reconciler 放入的回调函数的执行时机
- 在 concurrent 模式(并发模式)下实现任务分片,也就是可以暂时中断低优先级的任务,执行高优先级的任务,高优先级完成后再继续执行低优先级的任务