- 简易版React
- 实现核心API:
createElement
、render
、useState
- 理解
fiber
树的更新过程 - 使用
requestIdleCallback
作为scheduler
进行任务调度 - 实现简易
diff
- 实现简易
hooks
npm i
npm start
+---------+
| root |
+-+----+--+
| ^
child | |
v |
+-+----+--+
| node |
+-+-------+
| ^-------------+return
child | |
v |
+-+-------+ +---+-----+
| node +----->+ node |
+-+-------+ +---------+
| ^----------------------------+return
child | |
v |
+-+-------+ +---------+ +--+------+
| node +----->+ node +---->+ node |
+---------+ +---------+ +---------+
sibling sibling
fiber树
不是一颗严格的n叉树,每个fiber结点有三个重要的指针: return
、child
、sibling
, 对fiber树的遍历采用dfs算法
。