React Academy · Lektion

useOptimistic för omedelbar återkoppling

Visa optimistiska UI-uppdateringar medan en servermutation pågår med useOptimistic.

Lektion 4 av 413 steg

useOptimistic för omedelbar återkoppling är en gratis lektion i React Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för React Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i React Academy innehåller totalt 4 lektioner.

Välkommen

I den här lektionen kommer du att använda React 19:s useOptimistic-hook för att visa omedelbara optimistiska UI-förändringar medan en servermutation pågår, med automatisk återställning vid fel.

Vad är optimistiskt UI?

Optimistiskt UI innebär att du utgår från att en servermutation lyckas och uppdaterar UI:t direkt utan att vänta på serversvaret. Om den misslyckas återställer du det tidigare tillståndet.

Grunderna i useOptimistic

useOptimistic tar emot det faktiska tillståndet och en uppdateringsfunktion. Den returnerar det optimistiska tillståndet och en funktion som tillämpar optimistiska uppdateringar.
'use client';
import { useOptimistic } from 'react';

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

Exempel med gilla-knapp

När användaren klickar på Gilla visar du omedelbart det nya gilla-markeringen i UI:t via addOptimisticLike och skickar sedan den faktiska begäran. Om begäran misslyckas återställs det optimistiska tillståndet automatiskt till det faktiska tillståndet.
async function handleLike() {
  addOptimisticLike({ id: Date.now(), user: currentUser });
  await likePost(postId); // server action
}

Var det optimistiska tillståndet lagras

optimisticLikes visar det optimistiska värdet under övergången. När servern har svarat och det faktiska tillståndet för `likes` uppdateras (via revalidering) synkroniserar useOptimistic automatiskt tillbaka till det faktiska värdet.

Väntande indikator för optimistiska objekt

Markera optimistiska objekt visuellt, till exempel genom att göra dem något nedtonade, så att användarna vet att de väntar. Du kan lägga till flaggan `pending: true` i den optimistiska uppdateringen och formge den därefter.
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>
))}

Användning i en Transition

useOptimistic fungerar endast inuti en React Transition (startTransition eller useTransition). När du använder Server Actions med React 19 hanteras detta automatiskt.
'use client';
import { startTransition } from 'react';

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

Exempel på att skicka chattmeddelanden

Visa ett skickat meddelande direkt i chattlistan medan servern sparar det. Meddelandet visas omedelbart med statusen 'Skickar...' och ändras sedan till 'Skickat' när servern bekräftar.

Återställning vid fel

Om server action misslyckas (kastar ett fel eller avvisas) tar useOptimistic automatiskt bort det optimistiska värdet och återgår till det senast faktiska tillståndet. Du behöver inte implementera återställningen manuellt.

useOptimistic jämfört med manuella optimistiska uppdateringar

Före useOptimistic hanterade du två tillståndsvariabler (faktiskt och optimistiskt) och återställde dem manuellt i ett catch-block. useOptimistic samlar detta i en enda hook med automatisk återställning.

Snabb kontroll

Vad händer med det optimistiska tillståndet om den server action som utlöste det misslyckas?

Sammanfattning

useOptimistic(actualState, updater) returnerar [optimisticState, addOptimistic]. Anropa addOptimistic före server action för omedelbar återkoppling. React återställer automatiskt tillståndet om actionen misslyckas. Det fungerar inuti React Transitions.

Kursen är slutförd

Grattis! Du har slutfört **Server Components & React 19 Features**. Nu förstår du RSC:er, use()-hooken, Actions, useActionState och useOptimistic för modern React-utveckling.
Gratis att börja

Lär dig React med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
88
Lektioner
324

Vanliga frågor

Är lektionen ”useOptimistic för omedelbar återkoppling” gratis?

Ja – hela texten till ”useOptimistic för omedelbar återkoppling” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i React Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i React Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”useOptimistic för omedelbar återkoppling”?

Visa optimistiska UI-uppdateringar medan en servermutation pågår med useOptimistic. Ni övar på React Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig React Academy?

Du behöver inga förkunskaper. Utbildningen i React Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”useOptimistic för omedelbar återkoppling”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här React Academy-lektionen?

Ja. Varje React Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. React Server Components förklarade
  2. use()-hooken för asynkrona resurser
  3. React Actions och useActionState
  4. useOptimistic för omedelbar återkoppling
← Tillbaka till React Academy