跳到主要内容

32 篇文档带有标签「React」

查看所有标签

beginWork

Reconciler 协调器是 Render 阶段的第二部分工作,主要是负责比较当前组件树和新的组件树(由组件状态或属性变化产生),然后计算出实际DOM需要更新的最小变化集。整个工作的过程可以分为「递」和「归」,分别对应 beginWork 方法和 completeWork 方法

Commit 工作流程

Commit 阶段是将 Reconcile 阶段计算出的 DOM 更新应用到实际 DOM 中,并执行相关的生命周期钩子和设置 effect 的阶段

completeWork

为每个 Fiber 节点完成渲染准备,包括处理每个节点的 DOM 更新逻辑和收集本次更新过程中所有子节点的副作用

Diff算法

diff 发生在 Render 阶段,指的是 CurrentFiberNode(旧) 和 JSX DOM(新) 做对比,然后生成新的 WorkInProgressFiberNode

lane 模型

在 Scheduler 内部,定义了一套通用的优先级机制

MessageChannel

React 在任务调度时利用 MessageChannel 实现非阻塞的异步任务调度,以便高效利用浏览器的主线程,避免影响用户交互和页面渲染的流畅度

React 渲染流程

React 整体的渲染流程可以分为两大阶段,分别是 render 阶段和 commit 阶段。每个阶段对应不同的组件

update

在 React 中,有许多触发状态更新的方法,比如

useMemo(译)

useMemo 是一个React Hook,能够在 re-render 之间缓存一个计算结果。

useRef

- 返回的一个普通 JavaScript 对象,其中有一个 .current 属性指向传递给 useRef 的初始值。useRef 并不会创建一个新的对象,它返回的是同一个 ref 对象每次渲染。而且,useRef 并不负责处理状态更新,对 .current 属性的修改不会触发组件重新渲染。