认识
2023年11月30日
一、认识
createRoot()
用于客户端创建 React
渲染的根节点, 有 render
和 unmount
两个方法。主要工作是创建整个应用的 FiberRoot
, 创建一个 UpdateQueue
放入更新队列, 调用 scheduleUpdateOnFiber
进入调度更新流程。初始化流程如下:
-
创建
root
应用根节点对象HostRootFiber
与FiberRootNode
, 然后关联两个对象-
FiberRootNode
: 是React
应用的根节点, 它的作用是负责应用加载相关的内容,比如应用加载模式mode
,存储本次应用更新的回调任务以及优先级,存储创建完成的FiberTree
等。 -
HostRootFiber
: 是虚拟DOM
树的根节点,类型是FiberNode
, 针对普通DOM
元素或者组件创建的Fiber
对象,是虚拟DOM
的真实体现
-
-
初始化
HostRootFiber.updateQueue
, 创建一个updateQueue
更新队列 -
给根元素绑定了所有事件,任何子孙元素触发的该类型事件都会委托给根元素的事件回调处理
-
以同步的优先级, 创建一个
update
对象,包含了更新的信息,将其添加到组件的更新队列中, 开启调度更新流程