0Pricing
React Academy · Leçon

useOptimistic pour un retour instantané

Affichez des mises à jour optimistes de l’interface pendant l’exécution d’une mutation serveur avec useOptimistic.

useOptimistic pour un retour instantané est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 4 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 utiliserez le hook useOptimistic de React 19 pour afficher instantanément des changements optimistes de l’interface pendant l’exécution d’une mutation côté serveur, avec un retour automatique à l’état précédent en cas d’échec.

Qu’est-ce qu’une interface optimiste ?

Une interface optimiste consiste à supposer qu’une mutation côté serveur réussira et à mettre immédiatement l’interface à jour, sans attendre la réponse du serveur. En cas d’échec, vous revenez à l’état précédent.

Principes de base de useOptimistic

useOptimistic accepte l’état réel et une fonction de mise à jour. Il renvoie l’état optimiste ainsi qu’une fonction permettant d’appliquer des mises à jour optimistes.
'use client';
import { useOptimistic } from 'react';

const [optimisticLikes, addOptimisticLike] = useOptimistic(
  likes,                      // actual state from server
  (state, newLike) => [...state, newLike] // how to apply optimistic update
);

Exemple de bouton J’aime

Lorsque l’utilisateur clique sur J’aime, affichez immédiatement le nouveau « J’aime » dans l’interface via addOptimisticLike, puis envoyez la requête réelle. Si la requête échoue, l’état optimiste revient automatiquement à l’état réel.
async function handleLike() {
  addOptimisticLike({ id: Date.now(), user: currentUser });
  await likePost(postId); // server action
}

Où vit l’état optimiste

optimisticLikes affiche la valeur optimiste pendant la transition. Une fois que le serveur a répondu et que l’état réel de `likes` est mis à jour, via une nouvelle validation, useOptimistic se resynchronise automatiquement avec l’état réel.

Indicateur d’attente sur les éléments optimistes

Marquez visuellement les éléments optimistes, par exemple en les atténuant légèrement, afin que les utilisateurs sachent qu’ils sont en attente. Vous pouvez ajouter un indicateur `pending: true` lors de la mise à jour optimiste et appliquer le style correspondant.
const [optimisticMessages, addOptimistic] = useOptimistic(
  messages,
  (state, msg) => [...state, { ...msg, pending: true }]
);

// Render
{optimisticMessages.map(m => (
  <div key={m.id} style={{ opacity: m.pending ? 0.6 : 1 }}>{m.text}</div>
))}

Utilisation dans une transition

useOptimistic ne fonctionne qu’à l’intérieur d’une transition React, avec startTransition ou useTransition. Lorsque vous utilisez des actions serveur avec React 19, cette gestion est automatique.
'use client';
import { startTransition } from 'react';

const handleSubmit = (data) => {
  startTransition(async () => {
    addOptimistic(data);
    await serverAction(data);
  });
};

Exemple d’envoi d’un message de discussion

Affichez immédiatement dans la liste de discussion un message envoyé pendant que le serveur l’enregistre. Le message apparaît instantanément avec l’état « Envoi… », puis devient « Envoyé » lorsque le serveur confirme.

Comportement en cas de retour après erreur

Si l’action serveur échoue, en levant une exception ou en rejetant la promesse, useOptimistic supprime automatiquement la valeur optimiste et revient au dernier état réel. Vous n’avez pas besoin d’implémenter vous-même ce retour en arrière.

useOptimistic ou mises à jour optimistes manuelles

Avant useOptimistic, vous gériez deux variables d’état, réelle et optimiste, et reveniez manuellement à l’état précédent dans un bloc catch. useOptimistic regroupe cela dans un seul hook avec un retour automatique à l’état précédent.

Vérification rapide

Que devient l’état optimiste si l’action serveur qui l’a déclenché échoue ?

Récapitulatif

useOptimistic(actualState, updater) renvoie [optimisticState, addOptimistic]. Appelez addOptimistic avant l’action serveur pour obtenir un retour instantané. React revient automatiquement à l’état précédent si l’action échoue. Cela fonctionne dans les transitions React.

Cours terminé

Félicitations ! Vous avez terminé **Composants serveur et fonctionnalités de React 19**. Vous comprenez maintenant les RSC, le hook use(), les actions, useActionState et useOptimistic pour le développement React moderne.

Questions Fréquemment Posées

La leçon « useOptimistic pour un retour instantané » est-elle gratuite ?

Oui — le texte complet de « useOptimistic pour un retour instantané » 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 « useOptimistic pour un retour instantané » ?

Affichez des mises à jour optimistes de l’interface pendant l’exécution d’une mutation serveur avec useOptimistic. 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 4 sur 4.

Combien de temps prend la leçon « useOptimistic pour un retour instantané » ?

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. Les composants serveur React expliqués
  2. Le hook use() pour les ressources asynchrones
  3. Actions React et useActionState
  4. useOptimistic pour un retour instantané
← Retour à React Academy