Ответ
RTK Query работает с состоянием Redux. Она автоматически управляет кэшированием данных, загрузкой и ошибками, сохраняя всё в Redux store.
Пример:
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
const api = createApi({
reducerPath: 'api',
baseQuery: fetchBaseQuery({ baseUrl: '/api' }),
endpoints: (builder) => ({
getPosts: builder.query({
query: () => 'posts',
}),
}),
})
Ключевые особенности:
- Состояние хранится в Redux (включая кэш, статус запросов)
- Автоматически генерирует actions и reducers
- Оптимизирует перерисовки через memoization
- Поддерживает инвалидацию кэша и повторные запросы
Ответ 18+ 🔞
Смотри, вот тебе RTK Query, такая штука, которая с Redux работает. Представь себе — ты пишешь запросы на сервер, а она за тебя всю эту ебучую рутину делает: кэширует, статусы загрузки отслеживает, ошибки ловит. И всё это, блядь, аккуратненько в Redux store кладёт.
Вот, смотри, как это выглядит, реальный пример:
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
const api = createApi({
reducerPath: 'api',
baseQuery: fetchBaseQuery({ baseUrl: '/api' }),
endpoints: (builder) => ({
getPosts: builder.query({
query: () => 'posts',
}),
}),
})
Видишь, какая красота? Ты описал, что хочешь получить посты, а она уже сама, хитрая жопа, сгенерирует тебе всё, что нужно.
А теперь главные фишки, от которых сам от себя охуеешь:
- Всё состояние в Redux. Кэш, статусы «грузится» или «ошибка» — всё там, под капотом. Не нужно самому это в сторе руками размазывать.
- Автоматические экшены и редюсеры. Она их сама создаёт, как по маслу. Ты только endpoints опиши, а она уже под капотом всё накрутит.
- Мемоизация и умные перерисовки. Компоненты не будут дёргаться как угорелые от каждого чиха. Она следит, чтобы лишний раз не рендерить, если данные не поменялись. Удобно, ёпта!
- Инвалидация кэша и повторные запросы. Сделал мутацию, обновил данные — можно сказать «эй, эти посты устарели, перезапроси». И она, блядь, перезапросит. Не нужно самому вручную триггерить refetch.
В общем, не библиотека, а мечта лентяя. Сидишь такой, пьешь кофе, а она за тебя всю грязную работу делает. Чистый код и никаких, блядь, головных болей с асинхронщиной.