React -----源码解析

48 阅读1分钟

ReactDOM.createRoot(root).render()做了什么??

  • 调用了createRoot方法,在这个方法中做了些判定:是否是合法的容器,对不合法的容器做了一些警告提示;判断根容器是不是已经被标记为根节点;

  • 在createRoot中,又调用了createContainer(返回createFiberRoot),其实就是创建fiberRoot;

  • 创建fiberRoot和FiberNode,并用root.current = uninitializedFiber; uninitializedFiber.stateNode = root;互相指向;

  • 调用initializeUpdateQueue 对新建的fiberNode添加updateQueue更新队列

  • 返回创建的fiberRoot

  • 通过在div#root上添加属性值为fibernode方式标记为根节点

  • 进行事件的监听

  • 最后添加_internalRoot指向FiberNode并返回实例

React Fiber