Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: виртуализация, optimization

Как работать с react-window и react-virtualized?

Этот вопрос проверяет знание библиотек react-window и react-virtualized, которые используются для виртуализации длинных списков в React-приложениях.

Короткий ответ

react-window и react-virtualized — это библиотеки для виртуализации длинных списков в React, позволяющие рендерить только видимые элементы, что значительно улучшает производительность. React-window проще и легче, чем react-virtualized, и подходит для большинства случаев. Для использования вам нужно создать виртуализированный список, передав в него массив данных и настроив высоту элементов.

Длинный ответ

Виртуализация — это техника, позволяющая рендерить только те элементы, которые видимы пользователю, что значительно уменьшает нагрузку на производительность при работе с большими списками. Библиотеки react-window и react-virtualized предоставляют удобные компоненты для этой задачи.

react-window

Эта библиотека предлагает простую реализацию виртуализированных списков. Основные компоненты включают:

  • FixedSizeList: Для списков с фиксированным размером элементов.

  • VariableSizeList: Для списков с элементами переменной высоты.

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

const items = Array.from({ length: 1000 }, (_, index) => `Элемент ${index + 1}`); 
function MyList() {
  	return (
      		<List    
        		height={300}    
        		itemCount={items.length}      
        		itemSize={35}      
        		width={300}    
      		>      
      			{({ index, style }) => (   
           			<div style={style}>{items[index]}</div>     
        		)}    
      		</List>  
   	); 
}

react-virtualized

Эта библиотека более мощная и предоставляет больше возможностей, чем react-window, но также более сложная в использовании. Она включает в себя компоненты для виртуализации списков, таблиц, сеток и даже карт.

import React from 'react'; 
import { List } from 'react-virtualized'; 

const items = Array.from({ length: 1000 }, (_, index) => `Элемент ${index + 1}`); 
function MyList() {
  	return (
      		<List   
         		width={300}      
         		height={300}      
         		rowCount={items.length}      
         		rowHeight={35}      
         		rowRenderer={({ index, key, style }) => (   
              			<div key={key} style={style}>{items[index]}</div>      
        		 )}    
      		/>  
 	 ); 
}

Использование этих библиотек позволяет эффективно обрабатывать большие наборы данных, обеспечивая при этом хорошую производительность и отзывчивость интерфейса.

Уровень

  • Рейтинг:

    5

  • Сложность:

    8

Навыки

  • React

    React

Ключевые слова

#виртуализация

#optimization

Подпишись на React Developer в телеграм