React Memo
A
React 将组件树的render从同步(Legacy Mode) 变为可中断的异步(Concurrent Mode)花了2年
其中主要包括 Stack Reconciler -> Fiber Reconciler
Schedule
ExpirationTime -> Lane
Fiber很多出,大多数前端都听说过
B
effect list 是 React 源码中 commit 阶段的一个特性
React内部工作大体可以分为3个阶段:
调度更新
决定什么组件需要更新
更新组件
那么第三步如何知道要更新哪些组件呢?靠effect list。
如果将React Fiber树比喻为圣诞树,那么每个Fiber节点就是圣诞树上的挂件。
其中需要更新的节点就是亮的彩灯。
如何找到亮的彩灯(需要更新的节点)呢?
React的做法是:将需要更新的节点连接形成一条单链表。
查找时,只需要遍历这条单链表就行。就像圣诞树上的彩灯带一样。
C
React 团队想要发布新特性,底层也可以遍历整棵 Fiber 树
但是代码开发好了,又回滚,最后又被合进master,费劲周折。
可见,专业团队想达成 OKR 也不简单啊。