Home / Function/ commitAtomicPassiveEffects() — react Function Reference

commitAtomicPassiveEffects() — react Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  4ec30fe0_df47_e5db_0cf4_f03d14801fdc["commitAtomicPassiveEffects()"]
  e0fbfbd5_47b0_a489_0b36_bbfad9245544["ReactFiberCommitWork.js"]
  4ec30fe0_df47_e5db_0cf4_f03d14801fdc -->|defined in| e0fbfbd5_47b0_a489_0b36_bbfad9245544
  317d36b2_6d53_a2b7_dca2_deda0b86219e["recursivelyTraverseAtomicPassiveEffects()"]
  317d36b2_6d53_a2b7_dca2_deda0b86219e -->|calls| 4ec30fe0_df47_e5db_0cf4_f03d14801fdc
  317d36b2_6d53_a2b7_dca2_deda0b86219e["recursivelyTraverseAtomicPassiveEffects()"]
  4ec30fe0_df47_e5db_0cf4_f03d14801fdc -->|calls| 317d36b2_6d53_a2b7_dca2_deda0b86219e
  2d036adb_abc2_6b17_a780_276a2848fe77["commitOffscreenPassiveMountEffects()"]
  4ec30fe0_df47_e5db_0cf4_f03d14801fdc -->|calls| 2d036adb_abc2_6b17_a780_276a2848fe77
  b2abac0a_b636_f5de_817a_0aad16ff6bc1["commitCachePassiveMountEffect()"]
  4ec30fe0_df47_e5db_0cf4_f03d14801fdc -->|calls| b2abac0a_b636_f5de_817a_0aad16ff6bc1
  style 4ec30fe0_df47_e5db_0cf4_f03d14801fdc fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/react-reconciler/src/ReactFiberCommitWork.js lines 4504–4580

function commitAtomicPassiveEffects(
  finishedRoot: FiberRoot,
  finishedWork: Fiber,
  committedLanes: Lanes,
  committedTransitions: Array<Transition> | null,
  endTime: number, // Profiling-only. The start time of the next Fiber or root completion.
) {
  const prevDeepEquality = pushDeepEquality();

  // If this component rendered in Profiling mode (DEV or in Profiler component) then log its
  // render time. A render can happen even if the subtree is offscreen.
  if (
    enableProfilerTimer &&
    enableComponentPerformanceTrack &&
    (finishedWork.mode & ProfileMode) !== NoMode &&
    ((finishedWork.actualStartTime: any): number) > 0 &&
    (finishedWork.flags & PerformedWork) !== NoFlags
  ) {
    logComponentRender(
      finishedWork,
      ((finishedWork.actualStartTime: any): number),
      endTime,
      inHydratedSubtree,
      committedLanes,
    );
  }

  // "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.
  const flags = finishedWork.flags;
  switch (finishedWork.tag) {
    case OffscreenComponent: {
      recursivelyTraverseAtomicPassiveEffects(
        finishedRoot,
        finishedWork,
        committedLanes,
        committedTransitions,
        endTime,
      );
      if (flags & Passive) {
        // TODO: Pass `current` as argument to this function
        const current = finishedWork.alternate;
        const instance: OffscreenInstance = finishedWork.stateNode;
        commitOffscreenPassiveMountEffects(current, finishedWork, instance);
      }
      break;
    }
    case CacheComponent: {
      recursivelyTraverseAtomicPassiveEffects(
        finishedRoot,
        finishedWork,
        committedLanes,
        committedTransitions,
        endTime,
      );
      if (flags & Passive) {
        // TODO: Pass `current` as argument to this function
        const current = finishedWork.alternate;
        commitCachePassiveMountEffect(current, finishedWork);
      }
      break;
    }
    default: {
      recursivelyTraverseAtomicPassiveEffects(
        finishedRoot,
        finishedWork,
        committedLanes,
        committedTransitions,
        endTime,
      );
      break;
    }
  }

  popDeepEquality(prevDeepEquality);
}

Domain

Subdomains

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free