• Reads signals without creating dependency tracking.

    When called within an effect or computed, untrack prevents the signals read inside from becoming dependencies. Useful for conditional logic and side effects that shouldn't trigger re-runs.

    Isomorphic: Works identically across all JavaScript runtimes. Performance: Avoids unnecessary effect re-runs. Selective: Only affects signals read within the untrack function.

    Type Parameters

    • T

    Parameters

    • fn: (() => T)

      Function to run without dependency tracking

        • (): T
        • Returns T

    Returns T

    The result of the function

    const condition = signal(true);
    const value = signal(1);
    const debug = signal("debug info");

    const result = computed(() => {
    if (condition()) {
    // This creates a dependency on debug
    console.log("Debug:", debug());
    return value() * 2;
    }

    // This does NOT create a dependency on debug
    untrack(() => console.log("Untracked debug:", debug()));
    return value();
    });

    // Changing debug will trigger re-computation only in first case