Component React Pertama Anda
14 minitPertengahanReact
Dalam pelajaran ini
- ▸Tulis function component yang memulangkan JSX
- ▸Terangkan kenapa nama component mesti bermula dengan huruf besar
- ▸Gabungkan component dengan me-render satu di dalam yang lain
- ▸Guna
export defaultdanimportuntuk memindahkan component ke failnya sendiri
Idea utama
Component ialah function bernama huruf besar yang memulangkan JSX. Tulis sekali, render ia seperti tag, dan letak component di dalam component lain untuk membina UI yang lebih besar.
Dalam pelajaran lepas anda memecahkan halaman kepada component. Sekarang mari kita lihat dengan teliti peraturan yang menjadikan sesuatu function itu component React. Tak banyak pun.
export default function Greeting() {
const hour = new Date().getHours();
const word = hour < 12 ? "Selamat pagi" : "Hello";
return (
<section className="greeting">
<h2>{word}!</h2>
<p>Welcome to WANCode.</p>
</section>
);
}- Ia function JavaScript biasa. Anda boleh isytihar variable dan jalankan logik sebelum
return. - Ia memulangkan JSX — satu elemen (yang boleh ada banyak anak). Pulangkan
nullkalau ia tak perlu paparkan apa-apa. - Namanya bermula dengan huruf besar:
Greeting, bukangreeting. - Ia di-export supaya fail lain boleh menggunakannya.
export defaultmenandakan export utama fail itu.
Kenapa huruf besar penting
JSX menggunakan huruf pertama untuk menentukan maksud sesuatu tag. Tag huruf kecil seperti <div> atau <profilecard> dianggap elemen HTML. Tag huruf besar seperti <ProfileCard /> bermaksud "panggil function component saya". Kalau tersilap, React senyap-senyap mencipta elemen HTML yang tidak dikenali dan mencetak amaran dalam console.
Dianggap tag HTML
function profileCard() { … }
<profileCard />
// React: "<profileCard /> is using
// incorrect casing…"Memanggil component anda
function ProfileCard() { … }
<ProfileCard />
// React calls ProfileCard()
// and renders what it returnsComponent di dalam component
Component boleh me-render component lain — itulah composition, dan beginilah setiap aplikasi React berkembang. Takrifkan setiap component di peringkat atas fail (bukan di dalam component lain), kemudian guna di mana-mana anda perlukan.
function Avatar() {
return <img className="avatar" src="https://i.pravatar.cc/80" alt="Aina" />;
}
function ProfileCard() {
return (
<article className="card">
<Avatar />
<h2>Aina Rahman</h2>
</article>
);
}Satu component satu fail
Bila aplikasi membesar, setiap component utama biasanya duduk dalam failnya sendiri. export default menjadikannya export utama fail itu; import membawanya masuk ke tempat lain. Dalam projek sebenar (contohnya yang dibuat dengan Vite), fail kecil main.jsx meng-import App dan memasangnya — WANCode buat langkah itu untuk anda.
import { createRoot } from "react-dom/client";
import App from "./App.jsx";
createRoot(document.getElementById("root")).render(<App />);Sebagai rujukan sahaja: apa yang memasang App dalam projek React biasa.
Export default lwn export bernama
export default function ProfileCard di-import tanpa kurungan kerinting: import ProfileCard from "./ProfileCard.jsx". Export bernama (export function ProfileCard) perlukan kurungan kerinting: import { ProfileCard } from "./ProfileCard.jsx". Kalau tercampur, anda dapat undefined dan bukannya component.
Pratonton memaparkan tajuk tetapi tiada kad profil. Buka tab Console: React sedang memberi amaran tentang sesuatu.
Baiki component itu supaya kad dipaparkan. Pastikan nama function dan tag yang menggunakannya sepadan.
Semakan
- Kad profil ada pada halaman
- Ia di-render oleh component
ProfileCard - Tiada amaran huruf besar/kecil dalam console
Uji kefahaman
Apa yang anda pelajari
- ✓Component ialah function bernama huruf besar yang memulangkan JSX (atau
null). - ✓Tag huruf kecil ialah HTML; tag huruf besar memanggil component anda.
- ✓Component me-render component lain — itulah composition.
- ✓
export default+import X from "./X.jsx"membolehkan setiap component duduk dalam failnya sendiri.
Output konsol daripada kod anda akan dipaparkan di sini.