Home / Function/ commitHookEffectListMount() — react Function Reference

commitHookEffectListMount() — react Function Reference

Architecture documentation for the commitHookEffectListMount() function in ReactFiberCommitEffects.js from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  9fd588c7_bccc_26bc_b726_517f00094e4a["commitHookEffectListMount()"]
  8f5342bb_933e_6410_b584_cc120047394a["ReactFiberCommitEffects.js"]
  9fd588c7_bccc_26bc_b726_517f00094e4a -->|defined in| 8f5342bb_933e_6410_b584_cc120047394a
  14488ed6_0070_cb72_08ff_37fc5c860d29["recursivelyInsertNewFiber()"]
  14488ed6_0070_cb72_08ff_37fc5c860d29 -->|calls| 9fd588c7_bccc_26bc_b726_517f00094e4a
  a9dc2423_dea6_d2a0_0ec6_d7730bfd6c66["commitHookLayoutEffects()"]
  a9dc2423_dea6_d2a0_0ec6_d7730bfd6c66 -->|calls| 9fd588c7_bccc_26bc_b726_517f00094e4a
  a91297ff_1cc6_aa85_0c1f_efacbbff1de9["commitHookPassiveMountEffects()"]
  a91297ff_1cc6_aa85_0c1f_efacbbff1de9 -->|calls| 9fd588c7_bccc_26bc_b726_517f00094e4a
  bc4a6de9_07dc_eca7_681a_10f692e08483["commitMutationEffectsOnFiber()"]
  bc4a6de9_07dc_eca7_681a_10f692e08483 -->|calls| 9fd588c7_bccc_26bc_b726_517f00094e4a
  e70ee3de_87b0_d2f3_6d74_b22e45353773["invokeLayoutEffectMountInDEV()"]
  e70ee3de_87b0_d2f3_6d74_b22e45353773 -->|calls| 9fd588c7_bccc_26bc_b726_517f00094e4a
  6e4a054d_9ff9_012b_a02d_01c569b3f208["invokePassiveEffectMountInDEV()"]
  6e4a054d_9ff9_012b_a02d_01c569b3f208 -->|calls| 9fd588c7_bccc_26bc_b726_517f00094e4a
  b9112e3c_817d_b2df_a23c_d4990b8583ff["markComponentPassiveEffectMountStarted()"]
  9fd588c7_bccc_26bc_b726_517f00094e4a -->|calls| b9112e3c_817d_b2df_a23c_d4990b8583ff
  1631c1bb_91e9_dea8_2696_301b2a85091c["markComponentLayoutEffectMountStarted()"]
  9fd588c7_bccc_26bc_b726_517f00094e4a -->|calls| 1631c1bb_91e9_dea8_2696_301b2a85091c
  b0e2cbc6_6f5a_326b_7182_fad922785eb2["markComponentPassiveEffectMountStopped()"]
  9fd588c7_bccc_26bc_b726_517f00094e4a -->|calls| b0e2cbc6_6f5a_326b_7182_fad922785eb2
  5b38d4ad_979a_7c09_fdfc_fcbd5f3fd63c["markComponentLayoutEffectMountStopped()"]
  9fd588c7_bccc_26bc_b726_517f00094e4a -->|calls| 5b38d4ad_979a_7c09_fdfc_fcbd5f3fd63c
  style 9fd588c7_bccc_26bc_b726_517f00094e4a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/react-reconciler/src/ReactFiberCommitEffects.js lines 141–246

export function commitHookEffectListMount(
  flags: HookFlags,
  finishedWork: Fiber,
) {
  try {
    const updateQueue: FunctionComponentUpdateQueue | null =
      (finishedWork.updateQueue: any);
    const lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;
    if (lastEffect !== null) {
      const firstEffect = lastEffect.next;
      let effect = firstEffect;
      do {
        if ((effect.tag & flags) === flags) {
          if (enableSchedulingProfiler) {
            if ((flags & HookPassive) !== NoHookEffect) {
              markComponentPassiveEffectMountStarted(finishedWork);
            } else if ((flags & HookLayout) !== NoHookEffect) {
              markComponentLayoutEffectMountStarted(finishedWork);
            }
          }

          // Mount
          let destroy;
          if (__DEV__) {
            if ((flags & HookInsertion) !== NoHookEffect) {
              setIsRunningInsertionEffect(true);
            }
            destroy = runWithFiberInDEV(finishedWork, callCreateInDEV, effect);
            if ((flags & HookInsertion) !== NoHookEffect) {
              setIsRunningInsertionEffect(false);
            }
          } else {
            const create = effect.create;
            const inst = effect.inst;
            destroy = create();
            inst.destroy = destroy;
          }

          if (enableSchedulingProfiler) {
            if ((flags & HookPassive) !== NoHookEffect) {
              markComponentPassiveEffectMountStopped();
            } else if ((flags & HookLayout) !== NoHookEffect) {
              markComponentLayoutEffectMountStopped();
            }
          }

          if (__DEV__) {
            if (destroy !== undefined && typeof destroy !== 'function') {
              let hookName;
              if ((effect.tag & HookLayout) !== NoFlags) {
                hookName = 'useLayoutEffect';
              } else if ((effect.tag & HookInsertion) !== NoFlags) {
                hookName = 'useInsertionEffect';
              } else {
                hookName = 'useEffect';
              }
              let addendum;
              if (destroy === null) {
                addendum =
                  ' You returned null. If your effect does not require clean ' +
                  'up, return undefined (or nothing).';
                // $FlowFixMe (@poteto) this check is safe on arbitrary non-null/void objects
              } else if (typeof destroy.then === 'function') {
                addendum =
                  '\n\nIt looks like you wrote ' +
                  hookName +
                  '(async () => ...) or returned a Promise. ' +
                  'Instead, write the async function inside your effect ' +
                  'and call it immediately:\n\n' +
                  hookName +
                  '(() => {\n' +
                  '  async function fetchData() {\n' +
                  '    // You can await here\n' +
                  '    const response = await MyAPI.getData(someId);\n' +
                  '    // ...\n' +
                  '  }\n' +
                  '  fetchData();\n' +
                  `}, [someId]); // Or [] if effect doesn't need props or state\n\n` +
                  'Learn more about data fetching with Hooks: https://react.dev/link/hooks-data-fetching';
              } else {
                // $FlowFixMe[unsafe-addition] (@poteto)

Domain

Subdomains

Frequently Asked Questions

What does commitHookEffectListMount() do?
commitHookEffectListMount() is a function in the react codebase, defined in packages/react-reconciler/src/ReactFiberCommitEffects.js.
Where is commitHookEffectListMount() defined?
commitHookEffectListMount() is defined in packages/react-reconciler/src/ReactFiberCommitEffects.js at line 141.
What does commitHookEffectListMount() call?
commitHookEffectListMount() calls 4 function(s): markComponentLayoutEffectMountStarted, markComponentLayoutEffectMountStopped, markComponentPassiveEffectMountStarted, markComponentPassiveEffectMountStopped.
What calls commitHookEffectListMount()?
commitHookEffectListMount() is called by 6 function(s): commitHookLayoutEffects, commitHookPassiveMountEffects, commitMutationEffectsOnFiber, invokeLayoutEffectMountInDEV, invokePassiveEffectMountInDEV, recursivelyInsertNewFiber.

Analyze Your Own Codebase

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

Try Supermodel Free