React Academy · Pelajaran

Corak Prop Pemaparan

Hantar fungsi sebagai prop yang mengembalikan JSX untuk berkongsi tingkah laku tanpa mengikat antara muka.

Pelajaran 1 daripada 413 langkah

Corak Prop Pemaparan ialah pelajaran React Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran React Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus React Academy merangkumi sejumlah 4 pelajaran.

Selamat Datang

Dalam pelajaran ini, anda akan memahami corak props pemaparan — iaitu menghantar fungsi sebagai prop yang mengembalikan JSX — dan mempelajari masa yang sesuai untuk menggunakannya bagi berkongsi tingkah laku antara komponen.

Apakah Itu Props Pemaparan?

Props pemaparan ialah corak apabila sesuatu komponen menerima prop yang berupa fungsi. Komponen tersebut memanggil fungsi ini untuk menghasilkan keluarannya yang dipaparkan. Pengguna mengawal antara muka pengguna, manakala komponen menyediakan tingkah laku.
<DataProvider render={data => <UserCard user={data} />} />

Contoh Prop Pemaparan Ringkas

Komponen Toggle mengurus keadaan terbuka atau tertutup dan memanggil prop pemaparan dengan keadaan semasa serta fungsi togol. Pengguna menentukan cara pemaparannya.
function Toggle({ render }) {
  const [on, setOn] = useState(false);
  return render(on, () => setOn(!on));
}

<Toggle render={(on, toggle) => (
  <button onClick={toggle}>{on ? 'Close' : 'Open'}</button>
)} />

Menggunakan anak sebagai Prop Pemaparan

Daripada menggunakan prop pemaparan bernama, anda boleh menggunakan `children` sebagai fungsi. Banyak pustaka (React Router v5, Formik) menggunakan corak ini — ia kadangkala dipanggil 'anak sebagai fungsi'.
<Toggle>
  {(on, toggle) => (
    <div>
      {on && <Panel />}
      <button onClick={toggle}>Toggle</button>
    </div>
  )}
</Toggle>

Penjejak Kedudukan Tetikus

Contoh klasik props pemaparan: komponen MouseTracker menjejaki kedudukan kursor dan menghantarnya kepada prop pemaparan. Mana-mana pengguna boleh memaparkan kedudukan itu mengikut cara yang dikehendakinya.
function MouseTracker({ children }) {
  const [pos, setPos] = useState({ x: 0, y: 0 });
  return (
    <div onMouseMove={e => setPos({ x: e.clientX, y: e.clientY })}>
      {children(pos)}
    </div>
  );
}

Props Pemaparan berbanding Cangkuk Tersuai

Props pemaparan merupakan corak pilihan sebelum cangkuk diperkenalkan. Kini cangkuk tersuai melakukan perkara yang sama dengan lebih kemas: cangkuk mengembalikan data dan fungsi, manakala komponen menggunakannya dalam JSX sendiri. Cangkuk lebih diutamakan dalam React moden.
// Old: render props
<Mouse render={pos => <p>{pos.x}</p>} />

// Modern: custom hook
const pos = useMouse();
<p>{pos.x}</p>

Masa Props Pemaparan Masih Berguna

Props pemaparan masih berguna apabila: (1) anda perlu menyuntik pemaparan dinamik pada lokasi tertentu dalam pepohon, (2) anda sedang membina pustaka komponen tanpa antara muka yang memisahkan logik daripada antara muka pengguna.

Amaran Prestasi

Menentukan prop pemaparan secara sebaris menghasilkan fungsi baharu pada setiap pemaparan induk, lalu menghalang anak PureComponent/React.memo daripada keluar awal. Asingkan fungsi prop pemaparan kepada pemboleh ubah atau kaedah yang stabil.
// Avoid: new function every render
<Toggle render={pos => <Dot pos={pos} />} />

// Better: stable reference
const renderDot = pos => <Dot pos={pos} />;
<Toggle render={renderDot} />

Menggubah Props Pemaparan

Menyarangkan beberapa komponen prop pemaparan dengan cepat mewujudkan 'kerumitan prop pemaparan' atau 'kerumitan pembalut' — panggil balik yang bersarang secara mendalam dan sukar dibaca. Inilah salah satu sebab cangkuk diperkenalkan.

Props Pemaparan dalam Pustaka

React Router v5 menggunakan props pemaparan untuk Route. Downshift, Formik dan React-Table juga menggunakan variasinya. Memahami props pemaparan membantu anda membaca dan menyahpepijat kod yang menggunakan pustaka ini.

Semakan Pantas

Apakah kelebihan utama corak props pemaparan berbanding menghantar JSX statik?

Ringkasan

Props pemaparan menghantar fungsi yang mengembalikan JSX. Komponen menyediakan tingkah laku, manakala pengguna menyediakan antara muka pengguna. Utamakan cangkuk tersuai dalam React moden, tetapi fahami props pemaparan untuk membaca kod sedia ada dan membina komponen tanpa antara muka.

Seterusnya

Pelajaran seterusnya: **Komponen Peringkat Tinggi (HOC) Diterangkan** — anda akan membalut komponen untuk menyuntik props, melindungi laluan atau menambah pengelogan.
Percuma untuk bermula

Pelajari React dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
88
Pelajaran
324

Soalan Lazim

Adakah pelajaran “Corak Prop Pemaparan” percuma?

Ya — teks penuh “Corak Prop Pemaparan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus React Academy, tingkat taraf kepada CoddyKit PRO. Kursus React Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Corak Prop Pemaparan”?

Hantar fungsi sebagai prop yang mengembalikan JSX untuk berkongsi tingkah laku tanpa mengikat antara muka. Anda berlatih React Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan React Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran React Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Corak Prop Pemaparan” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Corak Prop Pemaparan
  2. Penjelasan Komponen Aras Lebih Tinggi (HOC)
  3. HOC berbanding Prop Pemaparan berbanding Cangkuk Tersuai
  4. Memfaktorkan Semula HOC kepada Cangkuk Tersuai
← Kembali ke React Academy