0Pricing
React Academy · Leçon

RTK Query : points d’accès et mise en cache automatique

Définissez des points d’accès de requête et de mutation avec createApi, puis laissez RTK Query gérer la mise en cache.

RTK Query : points d’accès et mise en cache automatique est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage React Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours React Academy comprend 4 leçons au total.

Bienvenue

Dans cette leçon, vous définirez des points de terminaison de requête et de mutation avec createApi de RTK Query, qui gérera automatiquement la mise en cache, les états de chargement et la récupération des données.

Qu'est-ce que RTK Query ?

RTK Query est une couche de récupération et de mise en cache des données intégrée à Redux Toolkit. Elle élimine la gestion manuelle des états de chargement et d'erreur, déduplique les requêtes et met les réponses en cache selon le point de terminaison et l'argument.

Créer une API avec createApi

Appelez createApi() avec un reducerPath, un baseQuery et des points de terminaison. Le résultat comprend des fonctions React générées.
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;

Ajouter l'API au magasin

Ajoutez le réducteur généré et l'intergiciel à configureStore. L'intergiciel gère le cycle de vie du cache, l'invalidation et la nouvelle récupération des données.
import { configureStore } from '@reduxjs/toolkit';
import { userApi } from './userApi';

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

Utiliser une fonction de requête

Appelez la fonction générée dans un composant. Elle renvoie data, isLoading, isError et permet de relancer la requête. Les données sont mises en cache selon l'argument : la même fonction avec le même argument renvoie immédiatement les données en cache.
function UserCard({ id }) {
  const { data, isLoading, isError } = useGetUserQuery(id);
  if (isLoading) return <Spinner />;
  if (isError) return <p>Error</p>;
  return <p>{data.name}</p>;
}

Déduplication automatique

Si deux composants sont montés simultanément et appellent useGetUsersQuery(), RTK Query n'envoie qu'une seule requête réseau et partage la réponse entre les deux composants.

TTL du cache avec keepUnusedDataFor

Contrôlez la durée pendant laquelle les données mises en cache restent dans le magasin après le désabonnement de tous les abonnés. La valeur par défaut est de 60 secondes. Définissez-la pour chaque point de terminaison.
endpoints: (builder) => ({
  getUser: builder.query({
    query: id => '/users/' + id,
    keepUnusedDataFor: 300, // 5 minutes
  }),
})

Interrogation périodique des données en direct

Transmettez `pollingInterval` à l'appel de la fonction pour relancer automatiquement la requête toutes les N millisecondes. Cette approche est utile pour les tableaux de bord et les flux en direct.
const { data } = useGetStatsQuery(undefined, {
  pollingInterval: 5000, // refetch every 5 seconds
});

Arguments de requête et omission conditionnelle

Transmettez undefined ou utilisez l'option `skip` pour ignorer conditionnellement une requête. Cette approche est utile lorsque les identifiants nécessaires ne sont pas encore disponibles.
const { data } = useGetUserQuery(userId, { skip: !userId });

Transformer les réponses

Utilisez `transformResponse` pour remodeler la réponse de l'API avant de la mettre en cache. Les composants restent ainsi clairs : ils reçoivent une structure traitée plutôt que le format brut de l'API.
getUsers: builder.query({
  query: () => '/users',
  transformResponse: (raw) => raw.data.users,
})

Vérification rapide

Que se passe-t-il si deux composants appellent la même fonction RTK Query avec le même argument au même moment ?

Récapitulatif

createApi définit des points de terminaison et génère des fonctions typées. Ajoutez le réducteur et l'intergiciel au magasin. Les fonctions de requête renvoient data, isLoading et isError. Les réponses sont automatiquement mises en cache et dédupliquées.

Suite du cours

Leçon suivante : **Mises à jour optimistes et invalidation du cache** — vous mettrez l'interface à jour instantanément lors d'une mutation et invaliderez les données mises en cache avec des étiquettes.

Questions Fréquemment Posées

La leçon « RTK Query : points d’accès et mise en cache automatique » est-elle gratuite ?

Oui — le texte complet de « RTK Query : points d’accès et mise en cache automatique » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours React Academy, passe à CoddyKit PRO. Le cours React Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « RTK Query : points d’accès et mise en cache automatique » ?

Définissez des points d’accès de requête et de mutation avec createApi, puis laissez RTK Query gérer la mise en cache. Tu pratiques React Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer React Academy ?

Aucune expérience préalable n'est requise. React Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « RTK Query : points d’accès et mise en cache automatique » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon React Academy ?

Oui. Chaque leçon React Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Parties Redux Toolkit et createSlice
  2. Logique asynchrone avec createAsyncThunk
  3. RTK Query : points d’accès et mise en cache automatique
  4. Mises à jour optimistes et invalidation du cache
← Retour à React Academy