0Pricing
React Academy · Aula

RTK Query: endpoints e armazenamento automático em cache

Defina endpoints de consulta e mutação com createApi e deixe o RTK Query gerenciar o armazenamento em cache.

RTK Query: endpoints e armazenamento automático em cache é uma aula grátis de React Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.

Boas-vindas

Nesta lição, você definirá endpoints de consulta e mutação com createApi do RTK Query e deixará que ele gerencie automaticamente o armazenamento em cache, os estados de carregamento e a busca de dados.

O que é o RTK Query?

O RTK Query é uma camada de busca de dados e armazenamento em cache integrada ao Redux Toolkit. Ele elimina o gerenciamento manual dos estados de carregamento e erro, evita a duplicação de solicitações e armazena as respostas em cache por endpoint e argumento.

Criando uma API com createApi

Chame createApi() com reducerPath, baseQuery e endpoints. O resultado inclui ganchos React gerados automaticamente.
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';

export const userApi = createApi({
  reducerPath: 'userApi',
  baseQuery: fetchBaseQuery({ baseUrl: '/api' }),
  endpoints: (builder) => ({
    getUser: builder.query({ query: (id) => '/users/' + id }),
    getUsers: builder.query({ query: () => '/users' }),
  }),
});

export const { useGetUserQuery, useGetUsersQuery } = userApi;

Adicionando a API ao armazenamento

Adicione o redutor e o middleware gerados a configureStore. O middleware gerencia o ciclo de vida do cache, a invalidação e as novas buscas.
import { configureStore } from '@reduxjs/toolkit';
import { userApi } from './userApi';

export const store = configureStore({
  reducer: { [userApi.reducerPath]: userApi.reducer },
  middleware: (gDM) => gDM().concat(userApi.middleware),
});

Usando um gancho de consulta

Chame o gancho gerado em um componente. Ele retorna data, isLoading, isError e refetch. Os dados são armazenados em cache por argumento — o mesmo gancho com o mesmo argumento retorna os dados armazenados em cache instantaneamente.
function UserCard({ id }) {
  const { data, isLoading, isError } = useGetUserQuery(id);
  if (isLoading) return <Spinner />;
  if (isError) return <p>Error</p>;
  return <p>{data.name}</p>;
}

Deduplicação automática

Se dois componentes forem montados simultaneamente e chamarem useGetUsersQuery(), o RTK Query enviará apenas uma solicitação de rede e compartilhará a resposta entre os dois componentes.

TTL do cache com keepUnusedDataFor

Controle por quanto tempo os dados armazenados em cache permanecem no armazenamento depois que todos os assinantes são desmontados. O padrão é 60 segundos. Defina esse valor por endpoint.
endpoints: (builder) => ({
  getUser: builder.query({
    query: id => '/users/' + id,
    keepUnusedDataFor: 300, // 5 minutes
  }),
})

Sondagem de dados ao vivo

Passe `pollingInterval` à chamada do gancho para buscar os dados novamente automaticamente a cada N milissegundos. Isso é útil para painéis e fluxos de dados ao vivo.
const { data } = useGetStatsQuery(undefined, {
  pollingInterval: 5000, // refetch every 5 seconds
});

Argumentos de consulta e como ignorá-las

Passe undefined ou use a opção `skip` para ignorar condicionalmente uma consulta. Isso é útil quando os IDs necessários ainda não estão disponíveis.
const { data } = useGetUserQuery(userId, { skip: !userId });

Transformando respostas

Use `transformResponse` para remodelar a resposta da API antes de armazená-la em cache. Isso mantém os componentes limpos — eles recebem uma estrutura processada, não o formato bruto da API.
getUsers: builder.query({
  query: () => '/users',
  transformResponse: (raw) => raw.data.users,
})

Verificação rápida

O que acontece se dois componentes chamarem o mesmo gancho do RTK Query com o mesmo argumento ao mesmo tempo?

Recapitulação

createApi define endpoints e gera ganchos tipados. Adicione o redutor e o middleware ao armazenamento. Os ganchos de consulta retornam data, isLoading e isError. As respostas são armazenadas em cache e deduplicadas automaticamente.

A seguir

Próxima lição: **Atualizações otimistas e invalidação do cache** — você atualizará a interface instantaneamente durante uma mutação e invalidará os dados armazenados em cache usando identificadores.

Perguntas Frequentes

A aula “RTK Query: endpoints e armazenamento automático em cache” é grátis?

Sim — o texto completo de “RTK Query: endpoints e armazenamento automático em cache” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.

O que vou aprender em “RTK Query: endpoints e armazenamento automático em cache”?

Defina endpoints de consulta e mutação com createApi e deixe o RTK Query gerenciar o armazenamento em cache. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar React Academy?

Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “RTK Query: endpoints e armazenamento automático em cache”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de React Academy?

Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Partes do Redux Toolkit e createSlice
  2. Lógica assíncrona com createAsyncThunk
  3. RTK Query: endpoints e armazenamento automático em cache
  4. Atualizações otimistas e invalidação do cache
← Voltar para React Academy