From 5eb75d6d1c3db565f4d8000c06129a7cbabeadf2 Mon Sep 17 00:00:00 2001 From: YuJian Date: Thu, 14 Apr 2022 17:30:30 +0800 Subject: [PATCH] vault backup: 2022-04-14 17:30:30 --- 自顶向下学 React 源码/React 源码的碎片记录.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/自顶向下学 React 源码/React 源码的碎片记录.md b/自顶向下学 React 源码/React 源码的碎片记录.md index 18c02af..3e5e447 100644 --- a/自顶向下学 React 源码/React 源码的碎片记录.md +++ b/自顶向下学 React 源码/React 源码的碎片记录.md @@ -35,5 +35,6 @@ 2. context 是否发生变化 3. type 是否发生变化 - 如果条件都为否,那么 didReceiveUpdate 变成 false 之外还会判断本次更新当前 Fiber 是否存在需要执行的任务 -- 如果也没有任务需要执行,那么最终会走到 bailoutOnAlreadyFinishedWork 函数中去,和首屏渲染进入 update 的时候不同,这个函数最终会执行 cloneChildFibers 方法 -- createWorkInProgress 根据情况创建新的 Fiber 节点或者复用已有 Fiber 节点 \ No newline at end of file +- 如果也没有任务需要执行,和首屏渲染进入 update 的时候不同,最终会走到 bailoutOnAlreadyFinishedWork 函数中去,这个函数最终会执行 cloneChildFibers 方法,直接克隆一个子 Fiber 节点挂载到当前 Fiber 节点的 child 上 +- createWorkInProgress 根据情况创建新的 Fiber 节点或者复用已有 Fiber 节点 +- 对于 Function Component 会调用 renderWithHooks 方法,这个方法会执行 Function Component 自身,返回的值就是 React.createElement 返回的 JSX 对象 \ No newline at end of file