Home / Function/ recursivelyTraverseAtomicPassiveEffects() — react Function Reference

recursivelyTraverseAtomicPassiveEffects() — react Function Reference

Architecture documentation for the recursivelyTraverseAtomicPassiveEffects() function in ReactFiberCommitWork.js from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  317d36b2_6d53_a2b7_dca2_deda0b86219e["recursivelyTraverseAtomicPassiveEffects()"]
  e0fbfbd5_47b0_a489_0b36_bbfad9245544["ReactFiberCommitWork.js"]
  317d36b2_6d53_a2b7_dca2_deda0b86219e -->|defined in| e0fbfbd5_47b0_a489_0b36_bbfad9245544
  07f3c6d9_2fce_51ae_4408_e0d4ab7359a1["commitPassiveMountOnFiber()"]
  07f3c6d9_2fce_51ae_4408_e0d4ab7359a1 -->|calls| 317d36b2_6d53_a2b7_dca2_deda0b86219e
  c3c0c008_f543_54ba_5f17_334454e50793["reconnectPassiveEffects()"]
  c3c0c008_f543_54ba_5f17_334454e50793 -->|calls| 317d36b2_6d53_a2b7_dca2_deda0b86219e
  4ec30fe0_df47_e5db_0cf4_f03d14801fdc["commitAtomicPassiveEffects()"]
  4ec30fe0_df47_e5db_0cf4_f03d14801fdc -->|calls| 317d36b2_6d53_a2b7_dca2_deda0b86219e
  4ec30fe0_df47_e5db_0cf4_f03d14801fdc["commitAtomicPassiveEffects()"]
  317d36b2_6d53_a2b7_dca2_deda0b86219e -->|calls| 4ec30fe0_df47_e5db_0cf4_f03d14801fdc
  style 317d36b2_6d53_a2b7_dca2_deda0b86219e fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/react-reconciler/src/ReactFiberCommitWork.js lines 4457–4502

function recursivelyTraverseAtomicPassiveEffects(
  finishedRoot: FiberRoot,
  parentFiber: Fiber,
  committedLanes: Lanes,
  committedTransitions: Array<Transition> | null,
  endTime: number, // Profiling-only. The start time of the next Fiber or root completion.
) {
  // "Atomic" effects are ones that need to fire on every commit, even during
  // pre-rendering. We call this function when traversing a hidden tree whose
  // regular effects are currently disconnected.
  // TODO: Add special flag for atomic effects
  if (
    parentFiber.subtreeFlags & PassiveMask ||
    (enableProfilerTimer &&
      enableComponentPerformanceTrack &&
      parentFiber.actualDuration !== 0 &&
      (parentFiber.alternate === null ||
        parentFiber.alternate.child !== parentFiber.child))
  ) {
    let child = parentFiber.child;
    while (child !== null) {
      if (enableProfilerTimer && enableComponentPerformanceTrack) {
        const nextSibling = child.sibling;
        commitAtomicPassiveEffects(
          finishedRoot,
          child,
          committedLanes,
          committedTransitions,
          nextSibling !== null
            ? ((nextSibling.actualStartTime: any): number)
            : endTime,
        );
        child = nextSibling;
      } else {
        commitAtomicPassiveEffects(
          finishedRoot,
          child,
          committedLanes,
          committedTransitions,
          endTime,
        );
        child = child.sibling;
      }
    }
  }
}

Domain

Subdomains

Frequently Asked Questions

What does recursivelyTraverseAtomicPassiveEffects() do?
recursivelyTraverseAtomicPassiveEffects() is a function in the react codebase, defined in packages/react-reconciler/src/ReactFiberCommitWork.js.
Where is recursivelyTraverseAtomicPassiveEffects() defined?
recursivelyTraverseAtomicPassiveEffects() is defined in packages/react-reconciler/src/ReactFiberCommitWork.js at line 4457.
What does recursivelyTraverseAtomicPassiveEffects() call?
recursivelyTraverseAtomicPassiveEffects() calls 1 function(s): commitAtomicPassiveEffects.
What calls recursivelyTraverseAtomicPassiveEffects()?
recursivelyTraverseAtomicPassiveEffects() is called by 3 function(s): commitAtomicPassiveEffects, commitPassiveMountOnFiber, reconnectPassiveEffects.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free