React Academy · Pelajaran

useOptimistic untuk Maklum Balas Segera

Paparkan kemas kini antara muka optimistik semasa mutasi pelayan sedang berlangsung dengan useOptimistic.

Pelajaran 4 daripada 413 langkah

useOptimistic untuk Maklum Balas Segera ialah pelajaran React Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran React Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus React Academy merangkumi sejumlah 4 pelajaran.

Selamat Datang

Dalam pelajaran ini, anda akan menggunakan cangkuk useOptimistic React 19 untuk memaparkan perubahan UI optimistik dengan serta-merta semasa mutasi pelayan sedang berjalan, dengan pengembalian automatik apabila berlaku kegagalan.

Apakah UI Optimistik?

UI optimistik bermaksud menganggap mutasi pelayan akan berjaya dan mengemas kini UI dengan serta-merta tanpa menunggu respons pelayan. Jika mutasi gagal, anda mengembalikan keadaan kepada keadaan sebelumnya.

Asas useOptimistic

useOptimistic menerima keadaan sebenar dan fungsi pengemas kini. Ia mengembalikan keadaan optimistik serta fungsi untuk menggunakan kemas kini optimistik.
'use client';
import { useOptimistic } from 'react';

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

Contoh Butang Suka

Apabila pengguna mengklik Like, paparkan suka baharu dalam UI dengan serta-merta melalui addOptimisticLike, kemudian hantar permintaan sebenar. Jika permintaan gagal, keadaan optimistik akan dikembalikan kepada keadaan sebenar secara automatik.
async function handleLike() {
  addOptimisticLike({ id: Date.now(), user: currentUser });
  await likePost(postId); // server action
}

Tempat Keadaan optimistik Disimpan

optimisticLikes memaparkan nilai optimistik semasa transition. Setelah pelayan memberikan respons dan keadaan sebenar `likes` dikemas kini (melalui pengesahan semula), useOptimistic menyegerakkan semula keadaan dengan keadaan sebenar secara automatik.

Penunjuk Menunggu pada Item Optimistik

Tandakan item optimistik secara visual (contohnya, malapkan sedikit) supaya pengguna tahu item itu masih menunggu. Anda boleh menambahkan tanda `pending: true` dalam kemas kini optimistik dan menggayakannya dengan sewajarnya.
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>
))}

Menggunakan dalam Transition

useOptimistic hanya berfungsi dalam React Transition (startTransition atau useTransition). Apabila anda menggunakan Server Actions dengan React 19, perkara ini dikendalikan secara automatik.
'use client';
import { startTransition } from 'react';

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

Contoh Penghantaran Mesej Sembang

Paparkan mesej yang dihantar dengan serta-merta dalam senarai sembang sementara pelayan menyimpannya. Mesej itu muncul serta-merta dengan status 'Sending...', kemudian bertukar kepada 'Sent' apabila pelayan mengesahkannya.

Tingkah Laku Pengembalian Ralat

Jika server action gagal (menghasilkan pengecualian atau ditolak), useOptimistic membuang nilai optimistik secara automatik dan mengembalikan keadaan kepada keadaan sebenar terakhir. Anda tidak perlu melaksanakan pengembalian secara manual.

useOptimistic berbanding Kemas Kini Optimistik Manual

Sebelum useOptimistic, anda menguruskan dua pemboleh ubah keadaan (sebenar + optimistik) dan melakukan pengembalian secara manual dalam blok catch. useOptimistic menggabungkan semua ini menjadi satu cangkuk dengan pengembalian automatik.

Semakan Pantas

Apakah yang berlaku kepada keadaan optimistik jika server action yang mencetuskannya gagal?

Ringkasan

useOptimistic(actualState, updater) mengembalikan [optimisticState, addOptimistic]. Panggil addOptimistic sebelum server action untuk mendapatkan maklum balas segera. React mengembalikannya secara automatik jika action gagal. Ia berfungsi dalam React Transitions.

Kursus Selesai

Tahniah! Anda telah menamatkan **Server Components & React 19 Features**. Kini anda memahami RSC, cangkuk use(), Actions, useActionState dan useOptimistic untuk pembangunan React moden.
Percuma untuk bermula

Pelajari React dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
88
Pelajaran
324

Soalan Lazim

Adakah pelajaran “useOptimistic untuk Maklum Balas Segera” percuma?

Ya — teks penuh “useOptimistic untuk Maklum Balas Segera” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus React Academy, tingkat taraf kepada CoddyKit PRO. Kursus React Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “useOptimistic untuk Maklum Balas Segera”?

Paparkan kemas kini antara muka optimistik semasa mutasi pelayan sedang berlangsung dengan useOptimistic. Anda berlatih React Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan React Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran React Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “useOptimistic untuk Maklum Balas Segera” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Penjelasan Komponen Pelayan React
  2. Cangkuk use() untuk Sumber Tak Segerak
  3. Tindakan React & useActionState
  4. useOptimistic untuk Maklum Balas Segera
← Kembali ke React Academy