React Hooks Patterns/Track previous value

Store the previous render’s value.

Section: Common UI Hooks

Track previous value

tsx
tsx
function usePrevious<T>(value: T) {
  const ref = useRef<T | undefined>(undefined);
  useEffect(() => {
    ref.current = value;
  }, [value]);
  return ref.current;
}
Explanation

Useful for comparisons, transitions, analytics, and animation decisions.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Common UI Hooks
Persist state to localStorage
Sync component state with localStorage.
OpenIn sheettsxsame section
Respond to media queries
Expose a boolean that tracks a CSS media query.
OpenIn sheettsxsame section
Handle clicks outside an element
Close menus or popovers when a click happens outside a ref.
OpenIn sheettsxsame section
Basic custom hook
Extract reusable stateful logic into a function.
OpenIn sheettsx3 tag match
Custom hook with options object
Prefer options objects for extensible APIs.
OpenIn sheettsx3 tag match
Return object from a custom hook
Use named returns for richer APIs.
OpenIn sheettsx3 tag match