Skip to content

usePrevious

A hook that keeps track of a value’s previous state. Perfect for comparing current and previous values, implementing undo functionality, or tracking value changes.

Parameters

  • value: T - The value to track (can be any type)

Returns

  • T | undefined - The previous value, or undefined on first render

Usage

import { usePrevious } from '@rhinolabs/react-hooks';
function Counter() {
const [count, setCount] = useState(0);
const previousCount = usePrevious(count);
return (
<div>
<p>Current: {count}</p>
<p>Previous: {previousCount ?? 'No previous value'}</p>
<button onClick={() => setCount(count + 1)}>
Increment
</button>
</div>
);
}

Notes

  • Type-safe with generics
  • Works with any value type
  • Updates only on value changes
  • Uses refs for persistence
  • No unnecessary re-renders
  • Undefined on first render
  • Efficient value tracking
  • Maintains value history