Docs
useLazyEffect

useLazyEffect

"Lazy" version of useEffect: skips execution on the first render and only runs the callback on subsequent dependency updates.

Equivalent to a componentDidUpdate in hooks.

When to use

✅ Use when…🚫 Avoid when…
  • To react to state/prop changes without firing logic on mount.
  • When the initial effect would be redundant (e.g. a fetch already done during component initialization).
  • When you need logic to run on mount too — use a regular useEffect.
  • To detect previous values: combine with your own ref or use a "previous value" abstraction.

Signature

useLazyEffect(cb: () => any, deps: any[]);

Example

import { useLazyEffect } from '@apollion-dsi/core/hooks';
 
function Filter({ query }: { query: string }) {
  useLazyEffect(() => {
    // does not fire on mount; only when `query` changes
    fetchResults(query);
  }, [query]);
 
  return null;
}

See also