С состоянием чего работает библиотека RTK Query

Ответ

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.

В общем, не библиотека, а мечта лентяя. Сидишь такой, пьешь кофе, а она за тебя всю грязную работу делает. Чистый код и никаких, блядь, головных болей с асинхронщиной.