When the Profiler shows a real bottleneck: an expensive computation, or a memoized child re-rendering unnecessarily. Find the real problem first, then use the right hook only there, not as a default across the codebase.
When useMemo and useCallback Actually Hurt React Performance
When should I actually use useMemo and useCallback?
The answer
More FAQs in When useMemo and useCallback Actually Hurt React Performance
Yes. Memoization is not free, and using these hooks for cheap computations, without a memoized child, or with wrong dependencies adds overhead without benefit. The default should be no memoization, added only where measured.
Because each useMemo and useCallback call has overhead: storing dependencies, comparing them on every render, and managing the cache. For cheap computations, this overhead exceeds the saving.
No. useCallback only helps if the child receiving the function is wrapped in React.memo. If the child is not memoized, it re-renders anyway, so the stable reference provides no benefit and the overhead is wasted.
Still have questions?
Browse all our FAQs or reach out to our support team
Want to upskill yourself?
Your learning library
Small steps. Big possibilities.
Find your next course. Build something great.