weekly
weekly copied to clipboard
【开源自荐】从0实现 React18 核心功能
Big-React
Big-React是一个从0实现React18核心功能的项目。之所以叫Big-React而不是mini-React,是因为我的目标是逐步实现React18的核心功能,可以跑通对应的官方测试用例,而不是实现简易React。
在做这个项目前我已经写了一本关于React源码的开源电子书 —— React技术揭秘,所以我自信这个项目的完成度会比较高。
特点
首先,代码很方便阅读。按照每个核心功能一个版本,当前已经迭代了7个版本(对应7个 git tag),看每个tag对应代码就能屏蔽其他不相干代码造成的干扰。
其次,调试很方便,提供了3种调试方式。
1. 实时调试
针对不同版本,提供了不同的示例Demo。这种方式的好处是:
-
控制台会打印各个主要步骤的执行信息,可以直观看到执行流程
-
热更新(包括示例代码和源码代码)
2. pnpm link
将代码打包后link到其他项目中,将项目依赖的react与react-dom替换为我们打包的react与react-dom。这种方式的好处是:最贴合项目中实际使用React的情况
3. 跑React官方的测试用例
当前可跑通25个官方测试用例,随着项目迭代,这个数量会逐步增多。
这种方式的好处是:可以从官方用例的角度观察框架实现的细节、各种边界情况