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