Actions de formulaire : remplacer les routes d’API pour les mutations
Reliez directement les actions serveur aux actions des formulaires HTML pour effectuer des mutations de formulaire sans code superflu, avec une revalidation complète.
Actions de formulaire : remplacer les routes d’API pour les mutations est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 2 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.
Le modèle traditionnel
Dans les applications Next.js traditionnelles, les soumissions de formulaire nécessitent un composant client avec un gestionnaire onSubmit qui appelle fetch() pour envoyer les données par POST à une route d’API. Ce modèle fonctionne, mais il nécessite d’écrire et de maintenir séparément la logique de récupération côté client et le gestionnaire de route côté serveur.
Les actions serveur simplifient les formulaires
Avec les actions serveur, vous remplacez l’appel de récupération et la route d’API par une seule fonction. L’élément de formulaire reçoit l’action serveur comme propriété action : <form action={serverAction}>. React intercepte la soumission et appelle automatiquement l’action avec les données du formulaire.
Accéder aux champs du formulaire avec FormData
L’action serveur reçoit automatiquement un objet FormData comme argument lorsqu’elle est déclenchée par un formulaire. Vous accédez aux champs individuels avec formData.get('email'), qui renvoie la valeur sous forme de chaîne. Toutes les méthodes standard de FormData sont disponibles, notamment getAll() pour les champs à sélection multiple.
Renvoyer des résultats depuis les actions
Une action serveur peut renvoyer une valeur sérialisable que le client peut utiliser. Renvoyer un objet d’erreur comme { error: 'Email already exists' } ou un indicateur de réussite comme { success: true } permet au client de mettre à jour l’interface en conséquence sans recharger entièrement la page.
Les composants de page restent simples
Comme l’action du formulaire est une action serveur, le composant de page qui contient le formulaire n’a pas besoin d’être un composant client. Le serveur affiche le formulaire sous forme de HTML statique, et seules les parties interactives, comme l’affichage des erreurs, nécessitent du JavaScript côté client. Cela réduit considérablement la taille du paquet client.
Amélioration progressive intégrée
Un formulaire avec action={serverAction} fonctionne même si JavaScript est désactivé. Le navigateur effectue une requête POST de formulaire HTML standard, le serveur exécute l’action, puis renvoie la page mise à jour. Cette véritable amélioration progressive permet au formulaire de se dégrader correctement dans tous les environnements.
Revalider les données après une modification
Après qu’une action serveur a modifié des données, les données de page mises en cache doivent être actualisées. L’appel à revalidatePath('/dashboard') dans l’action invalide le cache de Next.js pour ce chemin, ce qui oblige la requête suivante à récupérer des données à jour. Il s’agit de la méthode standard pour maintenir à jour les pages rendues côté serveur après des modifications.
Invalidation précise du cache
revalidateTag('user-data') fournit une invalidation du cache plus précise que revalidatePath. Vous associez des balises aux appels de récupération avec next: { tags: ['user-data'] }, puis vous invalidez toutes les données portant cette balise en une seule fois depuis l’action serveur, quels que soient les chemins qui les affichent.
Rediriger après une action
Les actions serveur peuvent rediriger l’utilisateur vers une nouvelle page après une modification réussie en appelant redirect('/success') depuis le module next/navigation. Cette redirection est gérée côté serveur, ce qui signifie que le navigateur reçoit une réponse de navigation appropriée plutôt qu’une redirection côté client.
Modifications sans formulaire avec startTransition
Les actions serveur ne se limitent pas aux soumissions de formulaire. Pour les clics sur des boutons et les autres déclencheurs sans formulaire, encapsulez l’appel de l’action dans startTransition(() => action(arg)). Cela marque la navigation comme une transition et permet à React de conserver l’interface actuelle visible pendant l’exécution de l’action sur le serveur.
Validation dans les actions
Les actions serveur sont l’endroit approprié pour effectuer la validation côté serveur. Validez les champs de FormData, renvoyez les erreurs de validation s’ils ne sont pas valides et ne procédez à la modification que si tous les champs sont valides. Des bibliothèques comme Zod s’intègrent bien à cette approche : analysez FormData selon un schéma typé et renvoyez la carte des erreurs en cas d’échec.
Question sur FormData
Que reçoit une action serveur comme argument lorsqu’elle est déclenchée par une soumission de formulaire ?
Récapitulatif de la leçon
Les actions serveur remplacent le modèle associant récupération et route d’API pour les modifications effectuées par un formulaire. La propriété action du formulaire accepte directement une action serveur, qui reçoit un objet FormData. Les actions renvoient des résultats sérialisables pour mettre à jour l’interface client, prennent en charge revalidatePath et revalidateTag pour l’invalidation du cache, et fonctionnent progressivement sans JavaScript.
Questions Fréquemment Posées
La leçon « Actions de formulaire : remplacer les routes d’API pour les mutations » est-elle gratuite ?
Oui — le texte complet de « Actions de formulaire : remplacer les routes d’API pour les mutations » 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 « Actions de formulaire : remplacer les routes d’API pour les mutations » ?
Reliez directement les actions serveur aux actions des formulaires HTML pour effectuer des mutations de formulaire sans code superflu, avec une revalidation complète. 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 2 sur 4.
Combien de temps prend la leçon « Actions de formulaire : remplacer les routes d’API pour les mutations » ?
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
- Actions serveur dans React 19 et Next.js
- Actions de formulaire : remplacer les routes d’API pour les mutations
- useActionState et useFormStatus
- Amélioration progressive avec les actions serveur