intermediate
Optimizing Expensive Calculations with useMemo
Learn how to use the useMemo hook to memoize expensive computations and prevent unnecessary recalculations on every render.
import { useState, _______ } from 'react';
interface NumberStatsProps {
numbers: number[];
}
// Simulates an expensive calculation
function calculateSum(numbers: number[]): number {
console.log('Calculating sum...');
let sum = 0;
for (let i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
return sum;
}
export function NumberStats({ numbers }: NumberStatsProps) {
const [renderCount, setRenderCount] = useState(0);
// Memoize the expensive sum calculation
const sum = __________...;
// Memoize the average calculation which depends on sum
const average = __________...;
return (
<div>
<h2>Number Statistics</h2>
<p>Count: {numbers.length}</p>
<p>Sum: {sum}</p>
<p>Average: {average.toFixed(2)}</p>
<button onClick={() => setRenderCount(renderCount + 1)}>
Force Re-render ({renderCount})
</button>
</div>
);
}0/3 filled tab moves · Ctrl+↵ submits · Ctrl+Shift+↵ runsstarter code