← React Beginner Questions - Set 3 Q24

How can you optimize performance in a React application?

React Beginner Questions - Set 3

Four levers, in the order you should reach for them: measure, split, memoise, virtualise.

Example

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>
  );
}

What to notice

← Back to the question list