Server Functions ('use server')

React 🟡 Mid

Définition

Fonctions asynchrones marquées 'use server' qui s'exécutent sur le serveur et dont le client reçoit une référence sérialisée. Nom officiel depuis septembre 2024 ; « Server Action » désigne le cas où la fonction est passée à une prop action. Appelables via <form action>, useActionState ou startTransition. Stables dans React 19 (5 décembre 2024) ; les arguments et retours doivent être sérialisables.

Analogie

Un bouton d'appel d'ascenseur : vous appuyez côté client, la machinerie côté serveur fait le travail, vous n'avez que le bouton.

Exemple de code

// actions.js
'use server';
export async function createNote(title) {
  await requireUser();               // autorisation obligatoire
  return db.notes.create({ title }); // retour sérialisable
}

// NoteForm.jsx
'use client';
import { createNote } from './actions';
function NoteForm() {
  const [isPending, startTransition] = useTransition();
  const save = () => startTransition(async () => { await createNote('Idée'); });
  return <button onClick={save} disabled={isPending}>Créer</button>;
}

Cas d'usage

Mutations sans route API manuelle : formulaires, boutons d'action, appels RPC typés entre client et serveur.

Anti-pattern

Traiter une Server Function comme privée : c'est un endpoint HTTP exposé, à protéger comme une route API (validation, auth, dépendances à jour après la CVE-2025-55182).
#rsc#react19#interview

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre