156
Top Answer
useCallback
Returns a memoized function. Use when passing callbacks to child components.
const handleClick = useCallback(() => {
console.log('Clicked!', count);
}, [count]); // Only recreates when count changes
useMemo
Returns a memoized value. Use for expensive computations.
const expensiveResult = useMemo(() => {
return items.filter(i => i.active).map(i => i.value * 2);
}, [items]); // Only recalculates when items change
Key Difference
useCallback(fn, deps)= memoizes the function itselfuseMemo(() => fn, deps)= memoizes the return value
Pro Tip
useCallback(fn, deps) is equivalent to useMemo(() => fn, deps)
ReactDev