recursivelyTraversePassiveUnmountEffects() — react Function Reference
Architecture documentation for the recursivelyTraversePassiveUnmountEffects() function in ReactFiberCommitWork.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD e3c426a6_d017_fba5_0e94_3a1169983c80["recursivelyTraversePassiveUnmountEffects()"] e0fbfbd5_47b0_a489_0b36_bbfad9245544["ReactFiberCommitWork.js"] e3c426a6_d017_fba5_0e94_3a1169983c80 -->|defined in| e0fbfbd5_47b0_a489_0b36_bbfad9245544 8ece8c7a_ae72_8f82_6cb2_654f8dc2bc90["commitPassiveUnmountOnFiber()"] 8ece8c7a_ae72_8f82_6cb2_654f8dc2bc90 -->|calls| e3c426a6_d017_fba5_0e94_3a1169983c80 4f76ed87_f151_2295_8bb4_c7b5dfe010a2["pushComponentEffectStart()"] e3c426a6_d017_fba5_0e94_3a1169983c80 -->|calls| 4f76ed87_f151_2295_8bb4_c7b5dfe010a2 729871c3_3107_8e90_f4db_d567db865b85["commitPassiveUnmountEffectsInsideOfDeletedTree_begin()"] e3c426a6_d017_fba5_0e94_3a1169983c80 -->|calls| 729871c3_3107_8e90_f4db_d567db865b85 ff9409a2_b556_06af_85c9_ee748a528d80["popComponentEffectStart()"] e3c426a6_d017_fba5_0e94_3a1169983c80 -->|calls| ff9409a2_b556_06af_85c9_ee748a528d80 0aa36201_b90a_3656_4a51_312954ee1f8a["detachAlternateSiblings()"] e3c426a6_d017_fba5_0e94_3a1169983c80 -->|calls| 0aa36201_b90a_3656_4a51_312954ee1f8a 8ece8c7a_ae72_8f82_6cb2_654f8dc2bc90["commitPassiveUnmountOnFiber()"] e3c426a6_d017_fba5_0e94_3a1169983c80 -->|calls| 8ece8c7a_ae72_8f82_6cb2_654f8dc2bc90 style e3c426a6_d017_fba5_0e94_3a1169983c80 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/react-reconciler/src/ReactFiberCommitWork.js lines 4799–4844
function recursivelyTraversePassiveUnmountEffects(parentFiber: Fiber): void {
// Deletions effects can be scheduled on any fiber type. They need to happen
// before the children effects have fired.
const deletions = parentFiber.deletions;
if ((parentFiber.flags & ChildDeletion) !== NoFlags) {
if (deletions !== null) {
for (let i = 0; i < deletions.length; i++) {
const childToDelete = deletions[i];
const prevEffectStart = pushComponentEffectStart();
// TODO: Convert this to use recursion
nextEffect = childToDelete;
commitPassiveUnmountEffectsInsideOfDeletedTree_begin(
childToDelete,
parentFiber,
);
if (
enableProfilerTimer &&
enableProfilerCommitHooks &&
enableComponentPerformanceTrack &&
(childToDelete.mode & ProfileMode) !== NoMode &&
componentEffectStartTime >= 0 &&
componentEffectEndTime >= 0 &&
componentEffectEndTime - componentEffectStartTime > 0.05
) {
logComponentUnmount(
childToDelete,
componentEffectStartTime,
componentEffectEndTime,
);
}
popComponentEffectStart(prevEffectStart);
}
}
detachAlternateSiblings(parentFiber);
}
// TODO: Split PassiveMask into separate masks for mount and unmount?
if (parentFiber.subtreeFlags & PassiveMask) {
let child = parentFiber.child;
while (child !== null) {
commitPassiveUnmountOnFiber(child);
child = child.sibling;
}
}
}
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does recursivelyTraversePassiveUnmountEffects() do?
recursivelyTraversePassiveUnmountEffects() is a function in the react codebase, defined in packages/react-reconciler/src/ReactFiberCommitWork.js.
Where is recursivelyTraversePassiveUnmountEffects() defined?
recursivelyTraversePassiveUnmountEffects() is defined in packages/react-reconciler/src/ReactFiberCommitWork.js at line 4799.
What does recursivelyTraversePassiveUnmountEffects() call?
recursivelyTraversePassiveUnmountEffects() calls 5 function(s): commitPassiveUnmountEffectsInsideOfDeletedTree_begin, commitPassiveUnmountOnFiber, detachAlternateSiblings, popComponentEffectStart, pushComponentEffectStart.
What calls recursivelyTraversePassiveUnmountEffects()?
recursivelyTraversePassiveUnmountEffects() is called by 1 function(s): commitPassiveUnmountOnFiber.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free