课程简介
这门课的主题很明确:不是教你用 React 18 写业务,而是从零开始,把 React 18 的核心机制一行行实现出来。作者是卡颂,B 站上长期讲 React 源码的那位。对已经能熟练写函数组件、用过 Hooks、但每次看到 Fiber、lane 模型、调度器这些词就跳过的开发者来说,这种「自己动手造一遍」的路径,比单看源码解析文章要扎实得多。 课程在做什…
这门课的主题很明确:不是教你用 React 18 写业务,而是从零开始,把 React 18 的核心机制一行行实现出来。作者是卡颂,B 站上长期讲 React 源码的那位。对已经能熟练写函数组件、用过 Hooks、但每次看到 Fiber、lane 模型、调度器这些词就跳过的开发者来说,这种「自己动手造一遍」的路径,比单看源码解析文章要扎实得多。
课程在做什么:用实现代替阅读
React 18 的源码体量不小,直接打开 packages 目录逐行读,很容易在依赖关系和构建配置里迷路。这门课换了个思路:从一个最小的渲染器起步,按功能阶段往前推,需要什么就补什么。你会先做出能渲染出 DOM 节点的最小版本,再往里塞组件、更新、事件、优先级,最后落到并发特性上。
这种顺序的价值在于,每一步都有可运行的产物。你能看到「没有 Fiber 之前,更新是怎么处理的」「加了 Fiber 之后,为什么可以中断和恢复」「lane 模型出现之前,优先级是怎么表达的」。框架里那些看起来突兀的设计,放在这个演进顺序里会变得有解释力。
技术栈与前置要求
实现语言是 JavaScript/TypeScript,构建和调试会用到常见的打包与调试工具,运行环境是浏览器。课程本身不依赖你读过 React 源码,但要求你对以下几点不陌生:函数组件与 Hooks 的基本行为、JSX 被编译成什么、DOM 操作与事件冒泡、以及基本的模块化组织方式。如果连useState的闭包陷阱都还没踩过,建议先把 Hooks 用熟再来。
它面向的是进阶开发者,不是零基础前端。这一点从内容密度上就能判断出来——每个阶段都在动框架的骨架,而不是在调 API。
可以对照实践的几个模块
- 渲染与协调:从创建元素、构建 Fiber 树,到 commit 阶段真正改 DOM,这条链路是后面一切的基础。
- Hooks 的实现:Hooks 为什么必须按顺序调用、状态存在哪里、更新怎么触发重渲染,这些都能在实现里得到具体答案。
- 更新与优先级:批处理、lane 的位运算表达、高优先级任务如何插队,是理解 React 18 行为差异的关键。
- 调度与并发:时间切片、可中断渲染、
useTransition这类并发特性,只有自己实现过调度循环才谈得上理解。 - 事件系统:合成事件、事件委托、捕获与冒泡在框架层的处理方式。
这些模块之间是有依赖顺序的,建议按课程节奏走,不要跳着看。跳过去之后,后面某个实现细节会突然失去上下文。
怎么用这份资料
最有效的方式是边看边敲,并且刻意制造分歧:改一改调度的时间片阈值,看渲染行为怎么变;把优先级位运算换一种写法,观察哪些场景失效;在 commit 前后打日志,确认自己理解的执行顺序和真实的一致。只看视频不写代码,收获会打个对折。
调试部分同样值得认真对待。框架代码的报错栈往往很深,课程里提到的断点位置、调用栈观察方法、如何定位一次更新是从哪触发的,这些技巧在你自己排查业务中的性能问题时也直接可用。
学完之后,你对 React 18 的认识会从「知道它有哪些 API」变成「知道它在什么条件下做了什么事」。之后再去读官方源码或其他解析材料,你会发现自己能顺着结构走,而不是被细节淹没。
🔥 B站卡颂从0实现React18
从零开始,深度解析React18核心原理
编辑点评
系统讲解React18实现细节,适合进阶开发者深入理解框架原理。
⭐ 编辑推荐
跟随卡颂老师,逐个实现React18核心功能,掌握源码调试技巧。
✨ 课程亮点
✦React18源码深度解析
✦逐个实现核心功能
✦调试技巧分享
课程目录
课程目录54 集
- 035.「16-1」实现noop-renderer【优质资源‖关注:cunWorkNotes 解锁】.mp4 [80.2 MB]
- 059.「23-4」实现bailout策略(下).mp4 [82.3 MB]
- 045.「20」实现useRef.mp4 [62.7 MB]
- 062.「23-7」实现useMemo、useCallback【资源精选‖更多关注:CunworkNotes】.mp4 [41.5 MB]
- 053.「22-5」实现试验性hook —— use.mp4 [59.5 MB]
- 040.「18-1」实现并发更新的交互部分.mp4 [30.3 MB]
- 047.「21-2」实现Context逻辑【资源精选‖更多关注:CunworkNotes】.mp4 [30.4 MB]
- 042.「18-3」实现并发更新的状态计算.mp4 [118.9 MB]
- 058.「23-3」实现bailout策略(上).mp4 [44.9 MB]
- 039.「17-2」实现并发更新Demo【优质资源‖关注:cunWorkNotes 解锁】.mp4 [65.0 MB]
- 028.「13」实现Fragment【资源精选‖更多关注:CunworkNotes】.mp4 [80.5 MB]
- 004.「2-2」实现JSX的打包【不易整理‖请关注:CunWorkNoteS】.mp4 [49.1 MB]
- 026.「12-2」实现多节点Diff.mp4 [65.7 MB]
- 029.「14-1」批处理的概念【优质资源‖关注:cunWorkNotes 解锁】.mp4 [32.0 MB]
- 013.「6-3」实现ReactDOM.mp4 [44.2 MB]
- 005.「2-3」实现第一种调试方式【持续更新‖免费提供:CunworknoteS】.mp4 [18.5 MB]
- 014.「6-4」调试ReactDOM【不易整理‖请关注:CunWorkNoteS】.mp4 [23.8 MB]
- 010.「5-2」实现mount流程的completeWork【不易整理‖请关注:CunWorkNoteS】.mp4 [42.6 MB]
- 022.「10-2」update流程commit阶段.mp4 [33.5 MB]
- 019.「9-1」实现第三种调试方式.mp4 [24.1 MB]
- 009.「5-1」实现mount流程的beginWork.mp4 [68.9 MB]
- 006.「3」实现Reconciler架构.mp4 [66.5 MB]
- 003.「2-1」实现JSX.mp4 [40.2 MB]
- 015.「7-1」实现FunctionComponent.mp4 [19.0 MB]
- 024.「11」实现事件系统.mp4 [71.4 MB]
- 031.「14-3」实现调度阶段.mp4 [36.9 MB]
- 002.「1」搭建项目架构.mp4 [40.8 MB]
- 012.「6-2」实现Mutation子阶段.mp4 [33.6 MB]
- 030.「14-2」实现Lane模型.mp4 [32.4 MB]
- 008.「4-2」接入状态更新机制.mp4 [54.1 MB]
- 001.课程介绍.mp4 [5.0 MB]
- 017.「8-1」实现Hooks架构.mp4 [45.7 MB]
- 027.「12-3」Diff算法处理commit阶段.mp4 [34.7 MB]
- 011.「6-1」实现commit阶段.mp4 [16.0 MB]
- 025.「12-1」实现单节点Diff.mp4 [20.4 MB]
- 018.「8-2」实现useState.mp4 [50.5 MB]
- 021.「10-1」update流程render阶段.mp4 [47.5 MB]
- 016.「7-2」实现第二种调试方式.mp4 [22.2 MB]
- 007.「4-1」实现状态更新机制.mp4 [22.4 MB]
- 033.「15-1」实现useEffect数据结构.mp4 [58.7 MB]
- 061.「23-6」实现React.memo.mp4 [67.7 MB]
- 032.「14-4」改造更新流程.mp4 [43.3 MB]
- 057.「23-2」性能优化策略简介.mp4 [12.5 MB]
- 038.「17-1」实现同步更新Demo.mp4 [34.6 MB]
- 060.「23-5」实现eagerState策略.mp4 [40.9 MB]
- 051.「22-3」实现Suspense工作流程.mp4 [67.9 MB]
- 034.「15-2」实现useEffect工作流程.mp4 [107.0 MB]
- 056.「23-1」性能优化的一般思路.mp4 [20.7 MB]
- 041.「18-2」实现并发更新的策略逻辑.mp4 [63.4 MB]
- 048.「21-3」实现useContext.mp4 [27.5 MB]
- 046.「21-1」实现Context数据结构.mp4 [12.4 MB]
- 044.「19-2」实现useTransition.mp4 [67.2 MB]
- 050.「22-2」Suspense的实现思路.mp4 [87.0 MB]
- 054.「22-6」实现unwind流程.mp4 [101.2 MB]
🎯 学习收获
- 理解React18原理
- 提升源码调试能力
- 掌握React核心功能实现