import { useEffect, useRef } from 'react';
export function usePrevious<T>(value: T): T | undefined {
const ref = useRef<T | undefined>(undefined);
useEffect(() => {
ref.current = value;
}, [value]);
return ref.current;
}
// Detect transitions:
function Counter({ count }: { count: number }) {
const prev = usePrevious(count);
useEffect(() => {
if (prev !== undefined && prev !== count) {
console.log(`changed: ${prev} → ${count}`);
}
}, [count, prev]);
return <span>{count}</span>;
}
Create a free account and build your private vault. Share publicly whenever you want.