Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: loading

Что такое Suspense в React?

Этот вопрос проверяет знание концепции Suspense в React и её применения для управления асинхронными операциями, такими как загрузка данных

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

Suspense в React — это компонент, который позволяет вам обрабатывать асинхронные операции, такие как загрузка данных или компонентов, и отображать запасной UI, пока данные не будут готовы. Это помогает улучшить пользовательский опыт, позволяя разработчикам управлять состоянием загрузки и обеспечивать плавность интерфейса.

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

Suspense — это мощная функция в React, предназначенная для управления асинхронной загрузкой данных и компонентов. Она позволяет отображать запасной UI (например, индикаторы загрузки) до тех пор, пока не завершится загрузка требуемых данных или компонентов.

Как работает Suspense

Когда компонент, обернутый в Suspense, начинает загружать данные асинхронно, React временно заменяет его запасным UI, который можно настроить с помощью свойства fallback. Когда данные загружаются, компонент автоматически рендерится с новыми данными.

Пример использования Suspense для загрузки данных с помощью React.lazy:

const LazyComponent = React.lazy(() => import('./LazyComponent')); 

const App = () => (
  	<React.Suspense fallback={<div>Loading...</div>}>  
    		<LazyComponent />  
  	</React.Suspense> 
);

В этом примере, пока LazyComponent загружается, отображается текст "Loading...".

Зачем использовать Suspense

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

Асинхронные компоненты и данные

Suspense можно использовать не только для загрузки компонентов, но и для управления загрузкой данных через асинхронные функции. В будущем React планирует улучшить поддержку Suspense для управления асинхронной загрузкой данных, делая этот подход более универсальным.

Пример с данными: Представьте, что у вас есть компонент, который загружает данные из API. Используя Suspense, вы можете управлять состоянием загрузки:

const fetchData = () => {
  	return new Promise((resolve) => {  
    		setTimeout(() => resolve('Data loaded'), 2000);  
  	}); 
}; 

const DataComponent = () => {
  	const data = fetchData(); // Асинхронный вызов  
  
  	return <div>{data}</div>; 
}; 

const App = () => (
  	<React.Suspense fallback={<div>Loading data...</div>}>   
     		<DataComponent />  
  	</React.Suspense> 
);

Suspense предоставляет мощный инструмент для управления асинхронными операциями в React, обеспечивая более плавный и отзывчивый пользовательский интерфейс. Понимание его использования поможет разработчикам улучшать UX приложений.

Уровень

  • Рейтинг:

    3

  • Сложность:

    6

Навыки

  • React

    React

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

#loading

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