В TanStack Query (React Query) разница между isLoading, isFetching и isPending важная — они отражают разные состояния запроса.
✅ isLoading
Только первая загрузка данных.
- true → когда запрос выполняется впервые и данных ещё нет.
- false → когда данные уже получены хотя бы один раз.
Используется для:
- глобального спиннера
- skeleton UI
- initial loading состояния
📌 После первой успешной загрузки isLoading больше не станет true.
🔄 isFetching
Любой сетевой запрос — включая повторные.
true, когда:
- идёт первая загрузка
- идёт refetch
- сработал refetchOnWindowFocus
- меняются параметры запроса
Разница:
- isLoading → только первый раз
- isFetching → всегда, когда есть активный запрос
📌 Можно показывать маленький индикатор обновления, не скрывая старые данные.
🟡 isPending (v5)
Это новое состояние в TanStack Query v5.
isPending означает:
Запрос ещё не завершился (нет ни данных, ни ошибки).
По сути:
isPending === isLoading (в v4)
В v5:
- isPending → вместо isLoading
- isLoading теперь считается deprecated-подходом

Anastasiia Berest
Senior Web UI Engineer
I'm a web development passionate about creating meaningful digital experiences.