这是一个一步一步实现一个 mini-react 的项目,将尽量保持文件命名、变量命名、功能实现逻辑与 React 的实现一致。
在docs
目录下有详细的文档介绍如何实现每一个步骤,并且为方便阅读与查看代码,我将每一个小功能的实现作为一个 commit 进行提交。
希望如此能换你的一个🌟
src 目录是 mini-react 代码
docs 目录记录每一个功能实现的步骤
demo 是通过vite
创建的一个 React 项目,业务代码会在这里运行
启用项目查看运行效果
# 切换到
cd demo
# 下载依赖
yarn
# 运行
yarn dev
- fiber 的创建;
- 原生组件、函数组件、类组件、文本组件、Fragment组件的首次渲染;
scheduler
(调度)模块(暂时还不支持优先级~)
- 实现 useReducer、useState
- 节点的删除与更新
- 多节点删除
- vdom diff
- 节点与dom的复用
- 实现 useEffect
- 实现 useLayoutEffect