Next.js 15 Fullstack (App Router + Server Actions) · Lezione

UI ottimistica e stati pending con Server Actions

Crei interfacce reattive combinando Server Actions con useOptimistic, useFormStatus e useTransition per fornire un feedback immediato.

Lezione 4 di 413 passaggi

UI ottimistica e stati pending con Server Actions è una lezione Next.js 15 Fullstack (App Router + Server Actions) gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Next.js 15 Fullstack (App Router + Server Actions), e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Next.js 15 Fullstack (App Router + Server Actions) include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

Why Optimistic UI

Server Actions involve a network round trip. Optimistic UI updates the screen immediately as if the action succeeded, then reconciles with the real result for a fast feel.

Pending State with useFormStatus

The useFormStatus hook reads whether the parent form is submitting, letting you disable buttons or show spinners.

"use client";
import { useFormStatus } from "react-dom";
export function Submit() {
  const { pending } = useFormStatus();
  return <button disabled={pending}>{pending ? "Saving..." : "Save"}</button>;
}

useOptimistic Basics

The useOptimistic hook gives you a temporary optimistic state that overrides the real state until the action resolves.

"use client";
import { useOptimistic } from "react";
const [optimistic, addOptimistic] = useOptimistic(messages, (state, next) => [...state, next]);

Wiring an Optimistic Add

Call addOptimistic before invoking the action so the item appears instantly; the server then revalidates the true list.

async function action(formData) {
  addOptimistic({ text: formData.get("text"), sending: true });
  await sendMessage(formData);
}

useTransition

useTransition marks state updates as non-urgent and exposes isPending, useful when calling a Server Action outside a form.

"use client";
const [isPending, startTransition] = useTransition();
startTransition(() => { void likePost(id); });

Reconciliation

When the action finishes and the data revalidates, React discards the optimistic state and renders the authoritative server data automatically.

Handling Failures

If the action throws, the optimistic update is rolled back. Surface an error so the user knows their change did not persist.

Progressive Enhancement

Forms with Server Actions work even before JS loads. useFormStatus and optimistic hooks layer enhancement on top for interactive clients.

Disabling Double Submits

Use the pending flag to prevent duplicate submissions, which would otherwise fire the Server Action twice.

Keeping Inputs Responsive

Clear or reset the input immediately on optimistic add so the user can keep typing without waiting for the server.

Choosing the Right Hook

Use useFormStatus inside forms for pending UI, useOptimistic for instant list/state updates, and useTransition for non-form action calls.

Quick Check

What does useOptimistic provide?

Recap

You combined Server Actions with useFormStatus for pending UI, useOptimistic for instant updates with automatic reconciliation, and useTransition for non-form calls — rolling back gracefully on failure for a snappy, resilient UX.

Gratis per iniziare

Impara TypeScript con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
22
Lezioni
88

Domande Frequenti

La lezione «UI ottimistica e stati pending con Server Actions» è gratuita?

Sì — il testo completo di «UI ottimistica e stati pending con Server Actions» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Next.js 15 Fullstack (App Router + Server Actions), passa a CoddyKit PRO. Il corso Next.js 15 Fullstack (App Router + Server Actions) include 4 lezioni in totale.

Cosa imparerò in «UI ottimistica e stati pending con Server Actions»?

Crei interfacce reattive combinando Server Actions con useOptimistic, useFormStatus e useTransition per fornire un feedback immediato. Eserciti Next.js 15 Fullstack (App Router + Server Actions) con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Next.js 15 Fullstack (App Router + Server Actions)?

Non è richiesta alcuna esperienza precedente. Next.js 15 Fullstack (App Router + Server Actions) su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «UI ottimistica e stati pending con Server Actions»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Next.js 15 Fullstack (App Router + Server Actions)?

Sì. Ogni lezione Next.js 15 Fullstack (App Router + Server Actions) include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Moduli di base con Server Actions
  2. Modifica dei dati e revalidazione
  3. Gestione degli errori nelle Actions
  4. UI ottimistica e stati pending con Server Actions
← Torna a Next.js 15 Fullstack (App Router + Server Actions)