React Academy · Pelajaran

Prop Drilling: Kapan Menyulitkan dan Kapan Tidak

Identifikasi rantai drilling yang dalam dan bedakan kerumitan semu dari kerumitan nyata.

Pelajaran 2 dari 413 langkah

Prop Drilling: Kapan Menyulitkan dan Kapan Tidak adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 2 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 belajar mengidentifikasi penerusan properti, memahami kapan hal itu menyebabkan masalah nyata, dan membedakannya dari situasi ketika meneruskan properti merupakan solusi yang benar dan sederhana.

Apa Itu Penerusan Properti?

Penerusan properti terjadi ketika Anda meneruskan suatu properti melalui komponen perantara yang tidak menggunakannya sendiri—hanya komponen turunannya yang memerlukannya. Setiap lapisan perantara harus menerima dan meneruskan properti tersebut.
// Middle component: receives 'user' only to pass it down
function Layout({ user }) {
  return <Sidebar user={user} />;
}
// Sidebar: receives 'user' only to pass it down
function Sidebar({ user }) {
  return <UserAvatar user={user} />;
}
// UserAvatar: actually uses 'user'
function UserAvatar({ user }) {
  return <img src={user.avatarUrl} />;
}

Kapan Penerusan Tidak Masalah

Penerusan melalui 1–2 tingkat sering kali baik-baik saja dan merupakan solusi paling sederhana. Biaya menambahkan Konteks atau pustaka status lebih besar daripada biaya menambahkan properti ekstra pada kedalaman yang dangkal.

Tanda Penerusan Sudah Menjadi Masalah

Penerusan menjadi masalah ketika: (1) properti melewati 4 tingkat atau lebih komponen yang tidak menggunakannya, (2) mengganti nama properti memerlukan perubahan di banyak berkas, (3) sulit mengetahui komponen mana yang sebenarnya menggunakan data tersebut.

Refaktor dengan Komposisi Komponen

Sebelum menggunakan Konteks, cobalah **komposisi komponen**. Teruskan komponen pengguna yang sudah sepenuhnya dirender sebagai properti (atau children), bukan data mentah. Lapisan perantara tidak perlu mengetahui data tersebut.
// Instead of drilling 'user' through Layout → Sidebar → UserAvatar,
// render UserAvatar at the top level and pass it as a slot:
function App() {
  return <Layout sidebar={<UserAvatar user={user} />} />;
}

Komposisi Komponen Mengurangi Keterikatan

Komposisi berarti induk yang memiliki data juga merender komponen pengguna secara langsung. Komponen tata letak perantara menerima JSX yang sudah selesai, sehingga sepenuhnya tidak terikat pada data tersebut.

Kapan Menggunakan Konteks

Gunakan Konteks ketika: (1) komposisi mengharuskan Anda meneruskan JSX yang kompleks melalui banyak lapisan, (2) banyak komponen yang tidak berkaitan di seluruh pohon memerlukan data yang sama (misalnya pengguna saat ini, tema, lokal).

Kapan Menggunakan Pustaka Status

Gunakan Zustand, Redux, atau pustaka serupa ketika statusnya kompleks, sering diperbarui, memerlukan alat pengembang, atau harus dibagikan di antara pohon komponen yang sepenuhnya terpisah.

Aliran Data Terbalik

Penerusan properti juga berlaku untuk panggilan balik. Meneruskan penangan `onChange` sedalam lima tingkat sama merepotkannya dengan meneruskan data. Terapkan strategi komposisi dan Konteks yang sama pada panggilan balik.

Alur Pengambilan Keputusan

Tanyakan: ada berapa tingkat? 1–2: teruskan saja. 3 atau lebih: coba komposisi terlebih dahulu. Masih rumit: gunakan Konteks. Logika pembaruan yang kompleks atau lintas pohon: gunakan pustaka status.

Pemeriksaan Singkat

Solusi apa yang sebaiknya Anda coba **BEFORE** menggunakan Konteks untuk mengatasi penerusan properti?

Ringkasan

Penerusan properti sebanyak 1–2 tingkat tidak masalah. Setelah lebih dari 3 tingkat, coba komposisi komponen terlebih dahulu. Gunakan Konteks untuk banyak komponen pengguna yang memakai data yang sama. Gunakan pustaka status untuk status yang kompleks atau lintas pohon.

Berikutnya

Pelajaran berikutnya: **Pola Komunikasi Antarsaudara** — Anda akan mengoordinasikan dua komponen saudara melalui status induk bersama dan properti panggilan balik.
Gratis untuk memulai

Belajar React dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
88
Pelajaran
324

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Prop Drilling: Kapan Menyulitkan dan Kapan Tidak” gratis?

Ya — teks lengkap “Prop Drilling: Kapan Menyulitkan dan Kapan Tidak” 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 “Prop Drilling: Kapan Menyulitkan dan Kapan Tidak”?

Identifikasi rantai drilling yang dalam dan bedakan kerumitan semu dari kerumitan nyata. 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 2 dari 4.

Berapa lama pelajaran “Prop Drilling: Kapan Menyulitkan dan Kapan Tidak” 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. Mengangkat State: Prinsip dan Contoh
  2. Prop Drilling: Kapan Menyulitkan dan Kapan Tidak
  3. Pola Komunikasi Antarsaudara
  4. Memilih Lokasi State yang Tepat
← Kembali ke React Academy