Skip to main content

项目目录

简介

  • 项目结构:采用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 模式(并发模式)下实现任务分片,也就是可以暂时中断低优先级的任务,执行高优先级的任务,高优先级完成后再继续执行低优先级的任务