← React Beginner Questions - Set 3 Q24
React Beginner Questions - Set 3
Four levers, in the order you should reach for them: measure, split, memoise, virtualise.
import { lazy, Suspense, memo, useMemo } from 'react';
const HeavyChart = lazy(() => import('./HeavyChart')); // 1. code splitting
const Row = memo(function Row({ item }) { // 2. skip unchanged rows
return <li>{item.label}</li>;
});
export default function List({ items, filter }) {
const visible = useMemo( // 3. cache expensive work
() => items.filter(i => i.label.includes(filter)),
[items, filter]
);
return (
<Suspense fallback={<p>Loading chart…</p>}>
<HeavyChart />
<ul>{visible.map(i => <Row key={i.id} item={i} />)}</ul>
</Suspense>
);
}