0Pricing
React Academy · Pelajaran

Suspense untuk Batas Data & Kode

Gabungkan Suspense dengan pemuatan malas dan pustaka data masa depan untuk menghasilkan status pemuatan yang rapi.

Suspense untuk Batas Data & Kode adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.

Selamat Datang

Dalam pelajaran ini Anda akan menggunakan React Suspense dengan React.lazy untuk pembagian kode dan dengan pustaka data guna menampilkan antarmuka pengganti saat konten dimuat.

Apa Itu Suspense?

Suspense adalah komponen React yang menangkap komponen di dalam pohon turunannya yang sedang 'ditangguhkan', yaitu menunggu sesuatu dimuat, lalu menampilkan antarmuka pengganti sebagai gantinya.
<Suspense fallback={<Spinner />}>
  <MyComponent />
</Suspense>

Suspense dengan React.lazy

React.lazy() membuat komponen yang dimuat dari impor dinamis. Saat digunakan di dalam Suspense, antarmuka pengganti ditampilkan hingga bundel JavaScript selesai diunduh.
const HeavyChart = React.lazy(() => import('./HeavyChart'));

<Suspense fallback={<p>Loading chart...</p>}>
  <HeavyChart />
</Suspense>

Beberapa Komponen Lambat di Bawah Satu Batas

Beberapa komponen lambat di bawah batas Suspense yang sama akan menggunakan satu antarmuka pengganti bersama. React menunggu hingga ALL komponen selesai dimuat sebelum menampilkan konten. Gunakan batas bersarang untuk pemuatan yang independen.

Batas Suspense Bersarang

Bersaranglah pada batas Suspense agar bagian-bagian antarmuka dapat ditampilkan saat selesai dimuat, alih-alih menunggu semuanya. Batas luar menangkap pemuatan yang lebih lambat; batas dalam menangani pemuatan yang lebih cepat.
<Suspense fallback={<PageSkeleton />}>
  <Header />
  <Suspense fallback={<ChartSkeleton />}>
    <LazyChart />
  </Suspense>
</Suspense>

Suspense dengan Pustaka Data

Pustaka seperti React Query, dengan suspense: true, dan Relay menangguhkan komponen yang sedang menunggu data, sama seperti pemuatan lambat. Batas Suspense menyediakan antarmuka pengganti selama pemuatan.
const { data } = useQuery({ queryKey: ['users'], queryFn: fetchUsers,
  suspense: true }); // component suspends until data is ready
// No loading check needed — data is always available here

Hook use() di React 19

Di React 19, hook `use(promise)` memungkinkan Anda membaca promise secara langsung di dalam komponen. Jika promise masih menunggu, komponen ditangguhkan dan batas Suspense terdekat menampilkan antarmuka penggantinya.
import { use } from 'react';

function Profile({ userPromise }) {
  const user = use(userPromise); // suspends until resolved
  return <p>{user.name}</p>;
}

SuspenseList untuk Tampilan Berurutan

React.SuspenseList (eksperimental) mengoordinasikan beberapa batas Suspense agar ditampilkan dalam urutan tertentu, seperti dari atas ke bawah atau semuanya sekaligus — sehingga antarmuka tidak muncul secara kacau.

Suspense Tidak Menangkap Kesalahan

Suspense hanya menangani status pemuatan. Suspense tidak menangkap kesalahan dari pengambilan data yang gagal. Gabungkan Suspense dengan Error Boundary untuk menangani status pemuatan dan kesalahan.
<ErrorBoundary fallback={<Error />}>
  <Suspense fallback={<Spinner />}>
    <DataComponent />
  </Suspense>
</ErrorBoundary>

Layar Kerangka sebagai Antarmuka Pengganti

Alih-alih indikator pemuatan, gunakan layar kerangka sebagai antarmuka pengganti Suspense. Layar kerangka adalah tata letak pengganti yang menyerupai bentuk konten, sehingga mengurangi pergeseran tata letak saat konten muncul.

Pemeriksaan Singkat

Apa yang ditampilkan kepada pengguna saat bundel komponen React.lazy() sedang diunduh?

Rangkuman

Suspense membungkus komponen yang sedang dimuat dan menampilkan antarmuka pengganti. Gunakan React.lazy untuk pembagian kode, mode suspense pada pustaka data untuk pemuatan data, dan batas bersarang untuk tampilan progresif yang independen. Pasangkan dengan Error Boundary untuk penanganan kesalahan yang lengkap.

Kursus Selesai

Selamat! Anda telah menyelesaikan **Pola Asinkron dalam React: Promise & Konkurensi**. Kini Anda dapat menangani kondisi balapan, menggunakan useTransition dan useDeferredValue untuk antarmuka pengguna yang responsif, serta memanfaatkan Suspense sebagai batas pemuatan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Suspense untuk Batas Data & Kode” gratis?

Ya — teks lengkap “Suspense untuk Batas Data & Kode” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Suspense untuk Batas Data & Kode”?

Gabungkan Suspense dengan pemuatan malas dan pustaka data masa depan untuk menghasilkan status pemuatan yang rapi. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai React Academy?

Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Suspense untuk Batas Data & Kode” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Kondisi Balapan & Pembersihan Effect
  2. useTransition untuk Pembaruan UI Non-Pemblokiran
  3. useDeferredValue untuk Penundaan Input
  4. Suspense untuk Batas Data & Kode
← Kembali ke React Academy