Server Actions
React 🟡 MidDéfinition
Fonctions asynchrones exécutées sur le serveur et appelables depuis un composant client, typiquement via la prop action d'un <form>. Depuis septembre 2024, React les appelle « Server Functions » ; « Server Action » désigne le cas particulier d'une Server Function passée à une prop action. Stables dans React 19 (5 décembre 2024).
Analogie
Comme commander par téléphone : tu passes l'ordre (client) et la cuisine (serveur) exécuté, sans aller au comptoir (API route).
Exemple de code
// actions.ts
'use server';
import { updateTag } from 'next/cache';
export async function addTodo(formData: FormData) {
const session = await getSession(); // autorisation ICI
if (!session) throw new Error('Non autorisé');
await db.todos.create({ text: String(formData.get('text')) });
updateTag('todos'); // read-your-writes
}
// component.tsx
<form action={addTodo}><input name="text" /><button>Ajouter</button></form>
Cas d'usage
Soumission de formulaire, CRUD, toute mutation serveur, avec revalidation du cache (Next.js 16 : updateTag pour relire immédiatement ses propres écritures, refresh pour les données non mises en cache).
Anti-pattern
Oublier que chaque Server Function est un point d'entrée HTTP public : valider les entrées et vérifier l'autorisation dans la fonction elle-même. Le 3 décembre 2025, la CVE-2025-55182 (RCE, CVSS 10.0) touchait la désérialisation de ces requêtes dans react-server-dom-* 19.0 à 19.2.0 ; correctifs 19.0.1, 19.1.2, 19.2.1.
Termes liés
Sources
Fiche mise à jour le 2026-09-27