Explain React.memo, useMemo, and useCallback
Answer
All three are memoization techniques to prevent unnecessary re-renders or recalculations.
Comparison
React.memo
Prevents re-render if props haven't changed:
const Child = React.memo(({ name }) => {
return <div>{name}</div>;
});
useMemo
Memoizes expensive calculations:
const expensiveValue = useMemo(() => {
return computeExpensiveValue(a, b);
}, [a, b]);
useCallback
Memoizes function references:
const handleClick = useCallback(() => {
doSomething(id);
}, [id]);
When to Use
| Tool | Use When |
|---|---|
React.memo | Child receives same props frequently |
useMemo | Expensive calculations that don't need to re-run |
useCallback | Passing callbacks to memoized children |