reconnectPassiveEffects() — react Function Reference
Architecture documentation for the reconnectPassiveEffects() function in ReactFiberCommitWork.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD c3c0c008_f543_54ba_5f17_334454e50793["reconnectPassiveEffects()"] e0fbfbd5_47b0_a489_0b36_bbfad9245544["ReactFiberCommitWork.js"] c3c0c008_f543_54ba_5f17_334454e50793 -->|defined in| e0fbfbd5_47b0_a489_0b36_bbfad9245544 ea4de162_c0d1_f2e2_cc55_bbca4c7974d7["recursivelyTraverseReconnectPassiveEffects()"] ea4de162_c0d1_f2e2_cc55_bbca4c7974d7 -->|calls| c3c0c008_f543_54ba_5f17_334454e50793 4f76ed87_f151_2295_8bb4_c7b5dfe010a2["pushComponentEffectStart()"] c3c0c008_f543_54ba_5f17_334454e50793 -->|calls| 4f76ed87_f151_2295_8bb4_c7b5dfe010a2 da570743_1675_9fe9_6425_06d6a84f49ba["pushComponentEffectDuration()"] c3c0c008_f543_54ba_5f17_334454e50793 -->|calls| da570743_1675_9fe9_6425_06d6a84f49ba ea4de162_c0d1_f2e2_cc55_bbca4c7974d7["recursivelyTraverseReconnectPassiveEffects()"] c3c0c008_f543_54ba_5f17_334454e50793 -->|calls| ea4de162_c0d1_f2e2_cc55_bbca4c7974d7 a91297ff_1cc6_aa85_0c1f_efacbbff1de9["commitHookPassiveMountEffects()"] c3c0c008_f543_54ba_5f17_334454e50793 -->|calls| a91297ff_1cc6_aa85_0c1f_efacbbff1de9 2d036adb_abc2_6b17_a780_276a2848fe77["commitOffscreenPassiveMountEffects()"] c3c0c008_f543_54ba_5f17_334454e50793 -->|calls| 2d036adb_abc2_6b17_a780_276a2848fe77 317d36b2_6d53_a2b7_dca2_deda0b86219e["recursivelyTraverseAtomicPassiveEffects()"] c3c0c008_f543_54ba_5f17_334454e50793 -->|calls| 317d36b2_6d53_a2b7_dca2_deda0b86219e b2abac0a_b636_f5de_817a_0aad16ff6bc1["commitCachePassiveMountEffect()"] c3c0c008_f543_54ba_5f17_334454e50793 -->|calls| b2abac0a_b636_f5de_817a_0aad16ff6bc1 814a1810_d6b9_6098_a8fb_fd5562387064["commitTracingMarkerPassiveMountEffect()"] c3c0c008_f543_54ba_5f17_334454e50793 -->|calls| 814a1810_d6b9_6098_a8fb_fd5562387064 style c3c0c008_f543_54ba_5f17_334454e50793 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/react-reconciler/src/ReactFiberCommitWork.js lines 4234–4430
export function reconnectPassiveEffects(
finishedRoot: FiberRoot,
finishedWork: Fiber,
committedLanes: Lanes,
committedTransitions: Array<Transition> | null,
// This function visits both newly finished work and nodes that were re-used
// from a previously committed tree. We cannot check non-static flags if the
// node was reused.
includeWorkInProgressEffects: boolean,
endTime: number, // Profiling-only. The start time of the next Fiber or root completion.
) {
const prevEffectStart = pushComponentEffectStart();
const prevEffectDuration = pushComponentEffectDuration();
const prevEffectErrors = pushComponentEffectErrors();
const prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();
const prevDeepEquality = pushDeepEquality();
// If this component rendered in Profiling mode (DEV or in Profiler component) then log its
// render time. We do this after the fact in the passive effect to avoid the overhead of this
// getting in the way of the render characteristics and avoid the overhead of unwinding
// uncommitted renders.
if (
enableProfilerTimer &&
enableComponentPerformanceTrack &&
includeWorkInProgressEffects &&
(finishedWork.mode & ProfileMode) !== NoMode &&
((finishedWork.actualStartTime: any): number) > 0 &&
(finishedWork.flags & PerformedWork) !== NoFlags
) {
logComponentRender(
finishedWork,
((finishedWork.actualStartTime: any): number),
endTime,
inHydratedSubtree,
committedLanes,
);
}
const flags = finishedWork.flags;
switch (finishedWork.tag) {
case FunctionComponent:
case ForwardRef:
case SimpleMemoComponent: {
recursivelyTraverseReconnectPassiveEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions,
includeWorkInProgressEffects,
endTime,
);
// TODO: Check for PassiveStatic flag
commitHookPassiveMountEffects(finishedWork, HookPassive);
break;
}
// Unlike commitPassiveMountOnFiber, we don't need to handle HostRoot
// because this function only visits nodes that are inside an
// Offscreen fiber.
// case HostRoot: {
// ...
// }
case LegacyHiddenComponent: {
if (enableLegacyHidden) {
recursivelyTraverseReconnectPassiveEffects(
finishedRoot,
finishedWork,
committedLanes,
committedTransitions,
includeWorkInProgressEffects,
endTime,
);
if (includeWorkInProgressEffects && flags & Passive) {
// TODO: Pass `current` as argument to this function
const current: Fiber | null = finishedWork.alternate;
const instance: OffscreenInstance = finishedWork.stateNode;
commitOffscreenPassiveMountEffects(current, finishedWork, instance);
}
}
break;
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does reconnectPassiveEffects() do?
reconnectPassiveEffects() is a function in the react codebase, defined in packages/react-reconciler/src/ReactFiberCommitWork.js.
Where is reconnectPassiveEffects() defined?
reconnectPassiveEffects() is defined in packages/react-reconciler/src/ReactFiberCommitWork.js at line 4234.
What does reconnectPassiveEffects() call?
reconnectPassiveEffects() calls 8 function(s): commitCachePassiveMountEffect, commitHookPassiveMountEffects, commitOffscreenPassiveMountEffects, commitTracingMarkerPassiveMountEffect, pushComponentEffectDuration, pushComponentEffectStart, recursivelyTraverseAtomicPassiveEffects, recursivelyTraverseReconnectPassiveEffects.
What calls reconnectPassiveEffects()?
reconnectPassiveEffects() is called by 1 function(s): recursivelyTraverseReconnectPassiveEffects.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free