Ответ
State в React Query не является кэшем в классическом понимании. Это скорее управляемое состояние, которое React Query использует для хранения и синхронизации данных между запросами.
Ключевые отличия:
- Данные автоматически инвалидируются по истечении
staleTime
- Поддерживается фоновое обновление (
refetchOnWindowFocus
,refetchOnReconnect
) - Есть механизмы для ручной инвалидации (
invalidateQueries
)
Пример:
const { data } = useQuery({
queryKey: ['todos'],
queryFn: fetchTodos,
staleTime: 5000 // данные станут "устаревшими" через 5 сек
})
React Query предоставляет мощный абстракционный слой над кэшированием, но сам state — это лишь часть этой системы.