Langkau ke kandungan
WANCODE
EN

Berfikir dalam Bentuk Component

12 minitPertengahanReact

Dalam pelajaran ini

  • Terangkan apa itu component dan kenapa aplikasi React dibina daripadanya
  • Pecahkan reka bentuk halaman kepada pokok component dengan nama yang jelas
  • Pindahkan sebahagian JSX keluar daripada App ke dalam component sendiri dan render ia

Idea utama

Aplikasi React bukan satu halaman gergasi — ia ialah pokok component kecil. Setiap component ialah function JavaScript yang memulangkan satu bahagian UI.

Buka mana-mana aplikasi yang anda guna setiap hari — Shopee, Grab, WhatsApp. Perhatikan skrin betul-betul dan anda akan nampak ia dibina daripada kotak-kotak: bar atas, kotak carian, senarai, dan di dalam senarai itu kad yang sama berulang-ulang. React minta anda beri nama kepada setiap kotak itu dan bina ia sekali sahaja. Kotak bernama itulah component.

Component
Function JavaScript yang memulangkan sebahagian UI (ditulis dalam JSX). Namanya bermula dengan huruf besar, contohnya Header.
JSX
Sintaks seperti HTML di dalam kod React, contohnya <h1>Hello</h1>. Sebenarnya ia JavaScript — pelajaran 3 tunjuk caranya.
Render
Menggunakan component, ditulis seperti tag: <Header />. React memanggil function anda dan letak apa yang dipulangkan ke halaman.
Component tree
Component me-render component lain, jadi aplikasi membentuk pokok. App berada di atas sekali (root).

Daripada reka bentuk kepada pokok

Beginilah halaman kedai kecil boleh dipecahkan. Setiap baris ialah satu component; inden menunjukkan siapa me-render siapa.

Text
App
├── Header
├── Specials
├── Menu
│   ├── MenuItem   (Nasi lemak)
│   ├── MenuItem   (Mee goreng)
│   └── MenuItem   (Teh tarik)
└── Footer

MenuItem ditulis sekali dan digunakan tiga kali. Pelajaran 4 (props) tunjuk bagaimana setiap salinan mendapat data berbeza.

  • Satu tugas setiap satu. Kalau anda boleh terangkan sesuatu kotak dalam beberapa perkataan ("footer waktu operasi"), ia component yang baik. Kalau perlu "dan… dan…", pecahkan lagi.
  • Berulang? Bina sekali. Kad yang sama dipaparkan 20 kali ialah satu component yang digunakan 20 kali. Baiki bug sekali, terus baik di semua tempat.
  • Namakan seperti pasukan reka bentuk akan namakan. Header, ProductCard, CheckoutButton — nama menjadikan kod mudah dibaca seperti skrin itu sendiri.

Rupa sebuah component

Component cuma function yang memulangkan JSX. Untuk menggunakannya, tulis namanya seperti tag. Memindahkan markup ke dalam component tidak mengubah apa yang ada di skrin — ia mengubah betapa tersusun kod anda.

Semua di dalam App

JSX
export default function App() {
  return (
    <div className="page">
      <header className="header">
        <h1>Warung Kak Ani</h1>
      </header>
      <footer className="footer">
        <p>Open daily, 7am – 2pm</p>
      </footer>
    </div>
  );
}

App menggabungkan component

JSX
function Header() {
  return (
    <header className="header">
      <h1>Warung Kak Ani</h1>
    </header>
  );
}

function Footer() {
  return (
    <footer className="footer">
      <p>Open daily, 7am – 2pm</p>
    </footer>
  );
}

export default function App() {
  return (
    <div className="page">
      <Header />
      <Footer />
    </div>
  );
}

Halaman yang sama di skrin. Di sebelah kanan, App dibaca seperti senarai kandungan.

Dalam sandbox ini

WANCode menjalankan React 18 sebenar dalam pelayar anda. Apa sahaja yang App.jsx export dengan export default akan dipasang pada halaman secara automatik, jadi anda boleh fokus pada component.

Header sudah pun menjadi component sendiri, tetapi footer masih ditulis terus di dalam App.

Cipta component baharu bernama Footer yang memulangkan keseluruhan blok <footer>…</footer>, kemudian gantikan blok itu dalam App dengan <Footer />. Halaman sepatutnya kelihatan sama seperti sebelum ini.

Semakan

  • Footer masih dipaparkan pada halaman
  • Footer di-render oleh component Footer
  • Tiada amaran React dalam console

Uji kefahaman

Q1

Satu halaman memaparkan reka bentuk kad produk yang sama sebanyak 12 kali. Apakah cara React untuk membinanya?

Q2

Dari segi teknikal, apakah itu component React?

Q3

Memecahkan halaman kepada component kebanyakannya mengubah…

Apa yang anda pelajari

  • UI React ialah pokok component, dengan App sebagai root.
  • Component ialah function JavaScript bernama huruf besar yang memulangkan JSX; anda render ia seperti tag: <Footer />.
  • Component yang baik buat satu tugas, dibina sekali, kemudian diguna semula.
Pratonton

Output konsol daripada kod anda akan dipaparkan di sini.

Langkah 1 daripada 2