|
|
|
@ -6,7 +6,6 @@
@@ -6,7 +6,6 @@
|
|
|
|
|
- 对于首屏渲染来说,只有根节点具有 current Fiber 而子节点不存在 |
|
|
|
|
- React render 阶段的工作分为归阶段和递阶段,在递阶段执行 beginWork,而在归阶段,执行 completeWork |
|
|
|
|
- 如果 render 的递归阶段,如果节点只存在一个文本子节点,那么这个子节点将不会进入 beginWork 递阶段,而是由它父节点直接进入 completeWork 归阶段,这是 React 做的一个优化,而这一个逻辑在 updateHostComponent方法中的 isDirectTextChild 可以看到 |
|
|
|
|
- Host Components 会进入 updateHostComponent 逻辑,在 React 18 是 updateHostComponent$1 |
|
|
|
|
- updateHostComponent 方法中的 reconcileChildren 方法会为当前 Fiber 节点创建它的子 Fiber 节点,也就是 Fiber 中的 child 属性 |
|
|
|
|
- reconcileChildren 方法接受 current 参数,通过判断这个参数是否为 null,分别执行 mountChildFibers 或 reconcileChildFibers 方法 |
|
|
|
|
- mountChildFibers 和 reconcileChildFibers 都是由 ChildReconciler 方法创建的,只是传入的布尔值会不同,而这个参数表示是否追踪副作用,mountChildFibers 为 false,reconcileChildFibers则相反 |
|
|
|
|