1
0
Fork 0
Browse Source

vault backup: 2022-05-09 17:09:59

master
YuJian 3 years ago
parent
commit
31d70930bc
  1. 22
      React 的源码深入/React 的流程解析 - Fiber 递归/React 的深入探索 - beginWork.md

22
React 的源码深入/React 的流程解析 - Fiber 递归/React 的深入探索 - beginWork.md

@ -3,25 +3,15 @@ @@ -3,25 +3,15 @@
[代码位置](https://github.com/facebook/react/blob/bd4784c8f8c6b17cf45c712db8ed8ed19a622b26/packages/react-reconciler/src/ReactFiberBeginWork.old.js#L3818)
```javascript
if (workInProgress._debugNeedsRemount && current !== null) {
return remountFiber(
current,
workInProgress,
createFiberFromTypeAndProps(
workInProgress.type,
workInProgress.key,
workInProgress.pendingProps,
workInProgress._debugOwner || null, workInProgress.mode,
workInProgress.lanes
)
);
function beginWork(current, workInProgress, renderLanes) {
if (current !== null) {
} else {
}
}
```
这一段逻辑暂时还不清楚,先跳过。
在进入主要函数逻辑之前,会先进入一个对 current 的空值判断,这个 current 就是 React 双缓存机制中的 current Fiber 树的 Fiber 节点,然后进入
对于首屏渲染而言这里传入的节点会是 FiberNode,也就是除了 FiberRootNode 外的第一个 Fiber 节点
beginWork 函数接受三个参数,分别是 current 节点,workInProgress 节点和 renderLanes 优先级,在进入主要函数逻辑 switch 之前,会先对 current 节点进行空值判断,
### beginWork

Loading…
Cancel
Save