Вопрос проверяет понимание различий между локальным и серверным состоянием и умение использовать специализированные инструменты для работы с данными.
React Query берёт на себя загрузку, кэширование и обновление серверных данных. Он автоматически управляет состояниями loading, error и success. Библиотека избавляет от ручного useEffect и хранения данных в useState. Данные становятся консистентными во всём приложении. Это значительно упрощает код компонентов.
Серверное состояние имеет другую природу, чем локальное состояние UI, и требует отдельного подхода.
Server state — это данные, которые:
приходят с сервера
могут устаревать
могут меняться вне приложения
требуют синхронизации
Хранить такие данные в useState неудобно и опасно.
React Query берёт на себя ключевые задачи:
Загрузка данных
автоматический запрос при монтировании
повторные запросы при необходимости
Кэширование
общий кэш для всего приложения
переиспользование данных между компонентами
Управление состояниями
isLoading
isError
data
const { data, isLoading } = useQuery(['users'], fetchUsers)
автоматический refetch
фоновое обновление
инвалидция кэша после мутаций
React Query снимает большую часть рутинной работы с серверным состоянием. Он делает код проще, стабильнее и легче для сопровождения.