0Pricing
React Academy · Pelajaran

Slot Bernama melalui Props Objek

Implementasikan slot header/body/footer dengan meneruskan JSX melalui props bernama.

Slot Bernama melalui Props Objek adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 3 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 menerapkan slot bernama yang fleksibel dengan meneruskan JSX melalui properti bernama, sehingga komponen tata letak dapat memiliki area kepala, isi, dan kaki tanpa struktur anak yang kaku.

Keterbatasan children

Satu properti `children` cocok untuk satu area. Saat komponen memerlukan beberapa area konten yang tidak saling bergantung, seperti kartu dengan kepala dan kaki, properti bernama yang membawa JSX adalah solusi yang bersih.

Slot Properti Bernama

Tentukan satu properti untuk setiap slot dalam interface komponen. Induk meneruskan JSX ke setiap properti. Komponen merender setiap slot di posisi yang tepat.
function Card({ header, body, footer }) {
  return (
    <div className="card">
      <div className="card-header">{header}</div>
      <div className="card-body">{body}</div>
      <div className="card-footer">{footer}</div>
    </div>
  );
}

// Usage
<Card
  header={<h2>Title</h2>}
  body={<p>Content here</p>}
  footer={<button>OK</button>}
/>

Slot Opsional

Jadikan slot opsional dengan hanya merendernya saat properti tersebut bernilai benar. Dengan begitu, komponen yang sama dapat digunakan dengan atau tanpa kaki, misalnya.
function Card({ header, children, footer }) {
  return (
    <div>
      {header && <div className="header">{header}</div>}
      <div className="body">{children}</div>
      {footer && <div className="footer">{footer}</div>}
    </div>
  );
}

Menggabungkan children dan Slot Bernama

Gunakan `children` untuk area konten utama dan properti bernama untuk area sekunder. Ini mengikuti prinsip bahwa kasus penggunaan yang paling umum harus menjadi yang paling mudah digunakan.
<Dialog
  title="Confirm"
  actions={<><button>Cancel</button><button>OK</button></>}
>
  <p>Are you sure?</p>  {/* children = primary slot */}
</Dialog>

TypeScript: Mengetikkan Slot Bernama

Ketikkan properti slot bernama sebagai `React.ReactNode` agar dapat menerima konten JSX apa pun.
interface CardProps {
  header?: React.ReactNode;
  children: React.ReactNode;
  footer?: React.ReactNode;
}

Slot Bernama vs Komponen Gabungan

Properti bernama bersifat sederhana dan eksplisit. Komponen gabungan, seperti ``, lebih praktis untuk keluarga komponen yang kompleks, tetapi memerlukan lebih banyak persiapan dengan Context. Mulailah dengan properti bernama dan lakukan migrasi jika diperlukan.

Meneruskan Komponen sebagai Slot

Anda juga dapat mengetikkan slot sebagai komponen React, bukan JSX. Induk meneruskan referensi komponen, lalu tata letak merendernya. Dengan cara ini, tata letak dapat mengatur kapan dan berapa kali slot dirender.
function Timeline({ renderItem, items }) {
  return (
    <ul>
      {items.map(item => (
        <li key={item.id}>{renderItem(item)}</li>
      ))}
    </ul>
  );
}

<Timeline
  items={data}
  renderItem={item => <EventCard event={item} />}
/>

Komposisi Tata Letak dengan Slot Bernama

Komponen tata letak halaman sering menggunakan slot bernama. Komponen kerangka halaman dengan slot `sidebar`, `toolbar`, dan `content` memungkinkan berbagai halaman menyusun kerangka yang sama dengan konten yang sepenuhnya berbeda di setiap area.

Mendokumentasikan Slot Bernama

Slot bernama mendokumentasikan dirinya sendiri melalui interface TypeScript atau PropTypes. Pengguna dapat melihat dengan tepat slot mana yang tersedia dan mana yang opsional, sehingga mengurangi kebutuhan akan dokumentasi eksternal.

Pemeriksaan Singkat

Tipe TypeScript apa yang harus Anda gunakan untuk properti slot bernama yang menerima JSX apa pun?

Ringkasan

Properti slot bernama membuat komponen tata letak menjadi fleksibel dan mendokumentasikan dirinya sendiri. Gunakan children untuk area utama, properti bernama untuk area sekunder, dan ketikkan semuanya sebagai React.ReactNode.

Berikutnya

Pelajaran berikutnya: **Mengkloning dan Menyisipkan Props dengan cloneElement** — Anda akan menggunakan React.cloneElement untuk meneruskan properti tersembunyi dari induk ke anak-anaknya.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Slot Bernama melalui Props Objek” gratis?

Ya — teks lengkap “Slot Bernama melalui Props Objek” 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 “Slot Bernama melalui Props Objek”?

Implementasikan slot header/body/footer dengan meneruskan JSX melalui props bernama. 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 3 dari 4.

Berapa lama pelajaran “Slot Bernama melalui Props Objek” 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. Dasar-Dasar props.children
  2. Utilitas React.Children
  3. Slot Bernama melalui Props Objek
  4. Menggandakan dan Menyisipkan Props dengan cloneElement
← Kembali ke React Academy