Back to Blog

TanStack Query isLoading, isFetching и isPending разница

Anastasiia Berest 2 min read

В 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

Anastasiia Berest

Senior Web UI Engineer

I'm a web development passionate about creating meaningful digital experiences.