Why this matters
The production reason.
Memoization is useful when a calculation is expensive or when a stable reference prevents a costly child render.
Using useMemo everywhere adds dependency noise and can hide simpler data-flow problems.
Measure or at least identify the expensive operation before adding memoization.
const visibleRows = useMemo(() => {
return rows
.filter((row) => row.status === activeStatus)
.sort((a, b) => b.score - a.score);
}, [rows, activeStatus]);