Sobes.tech
Senior

Mamy tabelę z 10 000 wierszami, która zaczyna się zacinać podczas renderowania. Dlaczego tak się dzieje i jak to naprawić?

sobes.tech AI

Odpowiedź od AI

Renderowanie tabeli z 10 000 wierszami powoduje opóźnienia z powodu dużej liczby elementów DOM, co mocno obciąża przeglądarkę i spowalnia renderowanie.

Jak to naprawić:

  • Wirtualizacja listy (wirtualny przewijanie) — renderować w DOM tylko widoczną część tabeli, ładując wiersze w miarę przewijania.
  • Paginacja — podzielić dane na strony, pokazując ograniczoną liczbę wierszy naraz.
  • Optymalizacja renderowania — używać memoizacji, unikać zbędnych ponownych renderów.

Przykład użycia wirtualnego przewijania z React i react-window:

import { FixedSizeList as List } from 'react-window';

const Row = ({ index, style }) => (
  <div style={style}>Wiersz {index}</div>
);

<List
  height={500}
  itemCount={10000}
  itemSize={35}
  width={300}
>
  {Row}
</List>