untracked

A way to read signals without creating reactive dependencies.

API

function untracked<T>(untrackedFn: () => T): T
  • untrackedFn: A function to execute without tracking signal dependencies.
  • Returns: The value returned by the function untrackedFn.

Basic Usage

Access a signal reactive scope (like computed or effect) without making that scope depend on the signal.

import { signal, computed, untracked } from '@hellajs/core';

const value = signal(5);
const multiplier = signal(10);

const result = computed(() => {
  // `result` will update when `value` changes...
  const currentValue = value();

  // ...but it will NOT update when `multiplier` changes.
  const currentMultiplier = untracked(() => multiplier());
  
  return currentValue * currentMultiplier;
});

console.log(result()); // 50

value(6);
console.log(result()); // 60 (recomputed because `value` is a dependency)

multiplier(20);
console.log(result()); // 60 (NOT recomputed because `multiplier` is untracked)