Appearance
ReactDOM.createRoot()
可以对于ReactDOM.createRoot()主要的流程为 1. 初始化FiberNode 2. 初始化合成事件
warnIfReactDOMContainerInDEV(container)
主要是做检查工作。
检查不能绑定在Document元素上。
绑定到body元素上会导致后面 script的插入失效,完全无法执行
不能重复的创建
在创建完成后会通过
markContainerAsRoot(root.current, container)
; 在节点上缓存当前的FiberNode
createContainer()
createRoot()的主要工作之一,初始化FiberNode,其主要包含 : 1. 初始化FiberRootNode 和 初始化FiberNode; 2. 关联两个 3. 初始化FiberNode的更新队列
const root = new FiberRootNode()
const fiberNode = createHostRootFiber()
FiberRootNode和 FiberNode互相关联
initializeUpdateQueue(fiberNode)
markContainerAsRoot(root.current, container) 标记根节点初始化完成
listenToAllSupportedEvents(rootContainerElement)(初始化合成事件)
这个比较重要,专门的一章讲这一方面的知识
最后
通过原型的方式提供了 render
和 unmount
的方法