---
sidebar_position: 6
---

# React-query

**TanStack Query** (ранее известная как **React Query**) — это мощная библиотека для управления состоянием данных в React-приложениях. Она фокусируется на работе с асинхронными данными, такими как запросы к API, и предоставляет инструменты для кэширования, синхронизации, фонового обновления и управления состоянием загрузки и ошибок. TanStack Query значительно упрощает работу с данными, делая код более чистым и эффективным.

## Основные возможности TanStack Query:
1. **Кэширование данных:**
   - Автоматически кэширует данные и управляет их актуальностью.
   - Повторные запросы к одним и тем же данным не выполняются, если они уже есть в кэше.
2. **Фоновое обновление:**
   - Автоматически обновляет данные в фоновом режиме, чтобы поддерживать их актуальность.
3. **Интеграция с React:**
   - Предоставляет хуки (например, `useQuery`, `useMutation`) для удобной работы с данными в функциональных компонентах.
4. **Оптимизация запросов:**
   - Управляет подписками на данные, предотвращая лишние запросы и ререндеры.
5. **Поддержка TypeScript:**
   - TanStack Query полностью поддерживает TypeScript, что делает её удобной для типизированных проектов.
6. **Инструменты разработчика:**
   - Встроенные DevTools позволяют отслеживать состояние запросов и кэша.

## Преимущества TanStack Query:
1. **Минимум boilerplate:**
   - TanStack Query автоматически управляет кэшированием, обновлением и ошибками.
2. **Производительность:**
   - Оптимизирует запросы и предотвращает лишние ререндеры.
3. **Гибкость:**
   - Подходит для работы с REST API, GraphQL и другими источниками данных.
4. **Интеграция с React:**
   - Предоставляет удобные хуки для работы с данными.
5. **Поддержка TypeScript:**
   - Полностью поддерживает TypeScript.

## Недостатки TanStack Query:
1. **Ориентация на данные:**
   - TanStack Query фокусируется на асинхронных данных и не подходит для управления состоянием приложения в целом.
2. **Кривая обучения:**
   - Некоторые концепции (например, инвалидация кэша) могут быть сложными для новичков.

## Когда использовать TanStack Query?
- Если ваше приложение активно взаимодействует с API.
- Если требуется кэширование данных и автоматическое обновление UI.
- Для приложений с большим количеством асинхронных запросов.

🚀 **_Источник: DeepSeek_**