Как бы вы композиционно организовали общий REST-запрос, который нужен нескольким страницам приложения, чтобы избежать дублирования кода?

Вынесите HTTP-контракт в отдельную функцию, а состояние загрузки и кеширование — в переиспользуемый hook/composable или слой серверных данных.

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

Что ответить на собеседовании

Вынесите HTTP-контракт в отдельную функцию, а состояние загрузки и кеширование — в переиспользуемый hook/composable или слой серверных данных.

Подробный разбор

Ответ с пояснениями

Вынесите HTTP-контракт в отдельную функцию, а состояние загрузки и кеширование — в переиспользуемый hook/composable или слой серверных данных.

Функция запроса отвечает за URL, параметры, преобразование ответа и ошибки. Hook/composable предоставляет страницам данные, loading и error, учитывает отмену и смену параметров. Для общего кеша нужен ключ, включающий влияющие на результат параметры. Простое вынесение fetch в функцию устраняет дублирование кода, но не гарантирует дедупликацию одновременных сетевых запросов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее