React18源码分析开篇导读

348 阅读4分钟

本专栏致力于每周分享一个项目,如果本文对你有帮助的话,欢迎点赞或者关注☘️

React18源码系列会随着学习React源码的实时进度而实时更新:两天一小改,五天一大改左右。

层次划分

将学习React18源码系列划分为 5 个层次,每个层次将要掌握到的知识都不相同。

随着层数的增加,其学习性价比会因为每个人的具体情况而不同,需结合自身情况做出取舍。

第一层

1️⃣掌握基本的术语,如fiber架构、虚拟dom、协调、diff算法等。

2️⃣掌握基本的实现思路,比如更新视图的原理。

build your own react(react 16.8)实现了mini react,可帮助我们了解基本的实现思路和基本的术语。

第二层

1️⃣掌握整体的工作流程

  • schedule(平台无关)
  • render(平台无关) -- fiber
  • commit (平台相关) -- reactDom / reactNative / reactArt

2️⃣掌握局部的细节

  • diff算法
  • hooks

到第二层一般就足够应对面试了

第三层

1️⃣掌握关键流程的细节

第三层的意义在于探索前端的边界

第四层

1️⃣掌握思想

  • 代数效应

第五层

多关注React核心团队核心开发成员,看看大佬的世界是怎么样的。

章节列表

从理念到架构,从架构到实现,从实现到具体代码。自顶向下、抽象程度递减,符合认知。

故,本专题划分为理念篇、架构篇、实现篇。

理念篇

第一章:react 理念

第一章理念篇——1.1 react核心理念

第一章理念篇——1.2 组件生命周期

第一章理念篇——1.3 虚拟 DOM的实现

第一章理念篇——1.4 Fiber

第一章理念篇——1.5 组件渲染和更新

第一章理念篇——1.6 Hooks

第二章:前置知识

第二章前置知识:2.1 源码阅读和调试技巧

第二章前置知识:2.2 React职责划分

架构篇

第三章: render 函数

第三章render函数-渲染阶段:3.1 流程概览

第三章render函数-渲染阶段:3.2 beginWork

第三章render函数-渲染阶段:3.3 completeWork

第三章render函数-提交阶段:3.4 流程概览

第三章render函数-提交阶段:3.5 before mutation 阶段

第三章render函数-提交阶段:3.5 mutation 阶段

第三章render函数-提交阶段:3.6 layout 阶段

第四章:Concurrent模式

第四章Concurrent模式: 4.1 概览

第四章Concurrent模式: 4.2 Scheduler时间切片、Scheduler中的优先级调度

第四章Concurrent模式: 4.2 React中的优先级运转之lane模型

实现篇

第五章: Hooks

第五章Hooks 5.1 极简 Hooks 实现

第五章Hooks 5.1 Hooks 数据结构

第五章Hooks 5.3 useState 与 useReducer

第九章Hooks 9.1 useEffect

第九章Hooks 9.1 useRef

第九章Hooks 9.1 useMemo 与 useCallback

第八章:React事件与状态管理

第八章React事件与状态管理: 8.1 流程概览

第八章React事件与状态管理:8.1 ReactDOM.render

第八章React事件与状态管理:8.1事件代理机制

第八章React事件与状态管理:8.2 自定义事件系统

第八章React事件与状态管理:8.2 setState工作原理

第八章React事件与状态管理:8.2 状态更新处理

第八章React事件与状态管理:8.2 批量更新

第八章React事件与状态管理:8.2 优先级

第八章React事件与状态管理:8.2 props和state

第十章: Concurrent Mode

第十章Concurrent Mode: 10.1 流程概览

第十章Concurrent Mode: 10.1 Scheduler 的原理与实现

第十章Concurrent Mode: 10.1 lane 模型

第十章Concurrent Mode: 10.1 异步可中断更新

第十章Concurrent Mode: 10.1 高优任务打断机制

第十章Concurrent Mode: 10.1 batchedUpdates

第十章Concurrent Mode: 10.1 Suspense

第十一章: Diff 算法

第十一章Diff 算法 11.1 流程概览

第十一章Diff 算法 11.1 单节点 Diff

第十一章Diff 算法 11.1 多节点 Diff

第九章

展望未来

演示Demo

以一个Demo初步感受React源码的调用栈

CleanShot 2024-10-08 at 09.30.31.mp4

参考链接

关于作者

作者:Wandra

内容:算法 | 趋势 |源码|Vue | React | CSS | Typescript | Webpack | Vite | GithubAction | GraphQL | Uniqpp。

专栏:欢迎关注呀🌹

本专栏致力于每周分享一个项目,如果本文对你有帮助的话,欢迎点赞或者关注☘️