认识
一、认识
React
内部有三个阶段, 分别为:
-
scheduler
调度阶段 -
render
阶段:render
阶段主要工作是: 构建Fiber
树; 生成effectList
。render
阶段以DFS
深度优先 的顺序遍历React Element
, 如果有子节点, 遍历子节点, 如果没有子节点遍历兄弟节点。render
节点其实是一个递归的过程, 存在递
和归
两个阶段:-
递
对应beginWork
: 是向下调和的过程。就是由fiberRoot
按照child
指针逐层向下调和,期间会执行函数组件,实例类组件,diff
调和子节点,打不同effectTag
。 -
归
对应completeWork
: 是向上归并的过程,如果有兄弟节点,会返回sibling
兄弟,没有返回return
父级,一直返回到fiebrRoot
,期间可以形成effectList
,对于初始化流程会创建DOM
,对于DOM
元素进行事件收集,处理style
,className
等。
-
-
commit
阶段:commit
阶段的主要工作是执行effectList
,更新DOM
,执行生命周期,获取ref
等操作。-
beforeMutation
阶段: 执行DOM
操作前 -
mutation
阶段: 执行DOM
操作 -
layout
阶段: 执行DOM
操作后
-