0Pricing
React Academy · Pelajaran

Penjelasan Komponen Orde Tinggi (HOC)

Bungkus komponen untuk menyisipkan prop, melindungi rute, atau menambahkan pencatatan melalui pabrik HOC.

Penjelasan Komponen Orde Tinggi (HOC) 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 memahami komponen orde tinggi (HOC), cara menulisnya, penggunaan umumnya, serta perbandingan kelebihannya dengan hook.

Apa Itu HOC?

Komponen Orde Tinggi adalah fungsi yang menerima komponen sebagai input dan mengembalikan komponen baru yang telah ditingkatkan. HOC menambahkan perilaku (seperti prop, pemeriksaan autentikasi, atau pencatatan) tanpa mengubah komponen asli.
// HOC signature
function withEnhancement(WrappedComponent) {
  return function Enhanced(props) {
    // add behaviour here
    return <WrappedComponent {...props} extraProp="value" />;
  };
}

HOC Penjaga Autentikasi

HOC yang umum digunakan mengarahkan pengguna yang belum terautentikasi ke halaman masuk. Komponen asli tidak perlu mengetahui logika autentikasi.
function withAuth(Component) {
  return function AuthGuard(props) {
    const isLoggedIn = useAuth();
    if (!isLoggedIn) return <Navigate to="/login" />;
    return <Component {...props} />;
  };
}

const ProtectedPage = withAuth(DashboardPage);

HOC Pencatatan

HOC dapat mencatat setiap perenderan beserta nama dan prop komponen untuk keperluan penelusuran kesalahan. Bungkus komponen apa pun dengan withLogger untuk menambahkan pelacakan.
function withLogger(Component) {
  return function Logged(props) {
    console.log('[render]', Component.displayName, props);
    return <Component {...props} />;
  };
}

Meneruskan Prop

Selalu sebarkan semua prop yang diterima ke komponen yang dibungkus dengan `{...props}`. Jika hal ini tidak dilakukan, API komponen asli akan rusak.
return function HOC(props) {
  return <WrappedComponent {...props} injectedProp={value} />;
};

Mengatur displayName

Komponen yang dikembalikan HOC kehilangan namanya di React DevTools. Tetapkan displayName yang bermakna agar Anda dapat mengidentifikasinya di pohon komponen.
function withAuth(Component) {
  function AuthGuard(props) { /* ... */ }
  AuthGuard.displayName = 'withAuth(' + (Component.displayName || Component.name) + ')';
  return AuthGuard;
}

Meneruskan Ref

Secara bawaan, HOC menghalangi ref. Gunakan `React.forwardRef` di dalam HOC untuk meneruskan ref ke komponen yang dibungkus.
function withStyle(Component) {
  return React.forwardRef(function (props, ref) {
    return <Component ref={ref} {...props} className="styled" />;
  });
}

HOC vs Props Render vs Hook

HOC menyisipkan prop dan dapat melindungi rute. Props render meneruskan antarmuka pengguna yang dinamis. Hook kustom mengekstrak logika. Dalam React modern, hook lebih disarankan karena menghindari neraka pembungkus dan lebih mudah digabungkan. HOC berguna untuk komponen class atau integrasi pihak ketiga.

Neraka Pembungkus

Menerapkan banyak HOC menciptakan penumpukan dalam pada pohon komponen: `withTheme(withAuth(withLogger(MyPage)))`. DevTools menampilkan banyak lapisan pembungkus anonim. Hook menghindari masalah ini sepenuhnya.

HOC dalam Praktik

`connect()` milik Redux, `withRouter()` milik React Router v5, dan `observer()` milik MobX semuanya merupakan HOC. Memahami HOC membantu Anda bekerja dengan API pustaka lama tersebut.

Pemeriksaan Singkat

Apa yang harus selalu dilakukan komponen orde tinggi terhadap prop yang diterimanya?

Ringkasan

HOC adalah fungsi yang menerima komponen dan mengembalikan komponen yang telah ditingkatkan. HOC menyisipkan prop, melindungi rute, dan menambahkan pencatatan. Selalu sebarkan prop, tetapkan displayName, dan teruskan ref. Utamakan hook dalam React modern.

Berikutnya

Pelajaran berikutnya: **HOC vs Props Render vs Hook Kustom**—Anda akan membandingkan tiga strategi berbagi kode berdasarkan keterbacaan, pengujian, dan penggabungannya.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penjelasan Komponen Orde Tinggi (HOC)” gratis?

Ya — teks lengkap “Penjelasan Komponen Orde Tinggi (HOC)” 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 “Penjelasan Komponen Orde Tinggi (HOC)”?

Bungkus komponen untuk menyisipkan prop, melindungi rute, atau menambahkan pencatatan melalui pabrik HOC. 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 “Penjelasan Komponen Orde Tinggi (HOC)” 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. Pola Render Props
  2. Penjelasan Komponen Orde Tinggi (HOC)
  3. HOC vs Render Props vs Hook Kustom
  4. Memfaktorkan Ulang HOC menjadi Hook Kustom
← Kembali ke React Academy