Проверяет умение эффективно загружать и отображать взаимозависимые данные из нескольких источников, минимизируя задержки и лишние перерисовки интерфейса.
Когда интерфейсу нужны данные из нескольких сервисов, ключевая проблема — не заставить пользователя ждать последовательно все запросы, если часть из них независима. Классический антипаттерн — «водопад» (waterfall), когда каждый следующий запрос стартует только после завершения предыдущего, хотя между ними нет реальной зависимости.
Promise.all или Promise.allSettled.async function loadDashboard(userId) {
// независимые запросы — параллельно
const [user, settings] = await Promise.all([
fetch(`/api/users/${userId}`).then(r => r.json()),
fetch('/api/settings').then(r => r.json()),
]);
// зависимый запрос — только после получения user
const orders = await fetch(`/api/orders?user=${user.id}`).then(r => r.json());
return { user, settings, orders };
}
useMemo и useCallback для тяжёлых вычислений и стабильных ссылок.Показывай скелетоны и частичный контент по мере поступления данных, а не блокируй весь экран. Это снижает воспринимаемое время ожидания. Ошибки обрабатывай отдельно для каждого запроса, чтобы падение одного сервиса не ломало всю страницу.
Итог: применяй параллельную загрузку для независимых данных, кэширование и мемоизацию для экономии запросов и рендеров, а библиотеки управления данными — чтобы не изобретать инфраструктуру вручную. Это особенно полезно в дашбордах и сложных SPA, где данные приходят из множества источников.
Уровень
Рейтинг:
5
Сложность:
6
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию