Senior
Nous avons un tableau avec 10 000 lignes qui commence à ralentir lors du rendu. Pourquoi cela se produit-il et comment y remédier?
sobes.tech IA
Réponse de l'IA
Отрисовка таблицы с 10 000 строк вызывает лаги из-за большого количества DOM-элементов, что сильно нагружает браузер и замедляет рендеринг.
Как исправить:
- Виртуализация списка (виртуальный скролл) — отрисовывать в DOM только видимую часть таблицы, подгружая строки по мере прокрутки.
- Пагинация — разбить данные на страницы, показывая ограниченное число строк за раз.
- Оптимизация рендеринга — использовать мемоизацию, избегать лишних перерисовок.
Пример использования виртуального скролла с React и react-window:
import { FixedSizeList as List } from 'react-window';
const Row = ({ index, style }) => (
<div style={style}>Row {index}</div>
);
<List
height={500}
itemCount={10000}
itemSize={35}
width={300}
>
{Row}
</List>