Проверяет понимание ограничений React при работе с большими списками и необходимости виртуализации.
React сам по себе не оптимизирует рендеринг большого количества элементов. Когда вы рендерите список из 10 000 элементов, React создает 10 000 DOM-узлов, что вызывает значительные задержки при загрузке и обновлении страницы. Это происходит из-за того, что браузер тратит много времени на обработку и перерисовку такого количества узлов.
Виртуализация решает эту проблему, рендеря только те элементы, которые видны в окне просмотра (viewport). Остальные элементы заменяются пустыми заглушками или не рендерятся вовсе. Это позволяет работать со списками из сотен тысяч элементов без потери производительности.
function LargeList() {
const items = Array.from({ length: 10000 }, (_, i) => i);
return (
<div>
{items.map(item => (
<div key={item}>Item {item}</div>
))}
</div>
);
}import { FixedSizeList } from 'react-window';
function VirtualizedList() {
const items = Array.from({ length: 10000 }, (_, i) => i);
const Row = ({ index, style }) => (
<div style={style}>Item {items[index]}</div>
);
return (
<FixedSizeList height={400} itemCount={items.length} itemSize={35}>
{Row}
</FixedSizeList>
);
}React не предоставляет встроенных средств для работы с большими списками. Для обеспечения высокой производительности при рендеринге тысяч элементов обязательно используйте библиотеки виртуализации, такие как react-window или react-virtualized.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию