0Pricing
React Academy · Ders

Üst Düzey Bileşenler (HOC'lar) Açıklaması

Prop'ları eklemek, rotaları korumak veya HOC fabrikaları aracılığıyla günlük kaydı eklemek için bileşenleri sarın.

Üst Düzey Bileşenler (HOC'lar) Açıklaması, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.

Hoş Geldiniz

Bu derste yüksek dereceli bileşenleri (HOC), bunların nasıl yazıldığını, yaygın kullanım alanlarını ve kancalara kıyasla ödünlerini anlayacaksınız.

HOC Nedir?

Yüksek dereceli bileşen, bir bileşeni girdi olarak alan ve yeni, geliştirilmiş bir bileşen döndüren işlevdir. HOC, özgün bileşeni değiştirmeden davranış (özellikler, kimlik doğrulama denetimleri veya günlükleme gibi) ekler.
// HOC signature
function withEnhancement(WrappedComponent) {
  return function Enhanced(props) {
    // add behaviour here
    return <WrappedComponent {...props} extraProp="value" />;
  };
}

Kimlik Doğrulama Koruması HOC

Yaygın bir HOC, kimliği doğrulanmamış kullanıcıları giriş sayfasına yönlendirir. Özgün bileşenin kimlik doğrulama mantığını bilmesi gerekmez.
function withAuth(Component) {
  return function AuthGuard(props) {
    const isLoggedIn = useAuth();
    if (!isLoggedIn) return <Navigate to="/login" />;
    return <Component {...props} />;
  };
}

const ProtectedPage = withAuth(DashboardPage);

Günlükleme HOC'si

Bir HOC, hata ayıklama amacıyla her oluşturmayı bileşenin adı ve özellikleriyle birlikte günlüğe kaydedebilir. İzleme eklemek için herhangi bir bileşeni withLogger ile sarmalayın.
function withLogger(Component) {
  return function Logged(props) {
    console.log('[render]', Component.displayName, props);
    return <Component {...props} />;
  };
}

Özellikleri Aktarma

Alınan tüm özellikleri `{...props}` ile her zaman sarmalanmış bileşene yayın. Bunu yapmamak özgün bileşenin programlama arayüzünü bozar.
return function HOC(props) {
  return <WrappedComponent {...props} injectedProp={value} />;
};

displayName Ayarlama

HOC'nin döndürdüğü bileşenler React DevTools'ta adlarını kaybeder. Bileşen ağacında onları tanıyabilmek için anlamlı bir displayName ayarlayın.
function withAuth(Component) {
  function AuthGuard(props) { /* ... */ }
  AuthGuard.displayName = 'withAuth(' + (Component.displayName || Component.name) + ')';
  return AuthGuard;
}

Başvuruları İletme

HOC'ler varsayılan olarak başvuruları engeller. Başvuruları sarmalanmış bileşene iletmek için HOC içinde `React.forwardRef` kullanın.
function withStyle(Component) {
  return React.forwardRef(function (props, ref) {
    return <Component ref={ref} {...props} className="styled" />;
  });
}

HOC ve Oluşturma Özellikleri ve Kancalar

HOC'ler özellik ekleyebilir ve rotaları koruyabilir. Oluşturma özellikleri dinamik kullanıcı arayüzü sağlar. Özel kancalar mantığı çıkarır. Modern React'te kancalar, sarmalayıcı cehenneminden kaçındıkları ve daha kolay birleştirilebildikleri için tercih edilir. HOC'ler sınıf bileşenleri veya üçüncü taraf bütünleştirmeleri için yararlıdır.

Sarmalayıcı Cehennemi

Birçok HOC uygulamak bileşen ağacında derin iç içe geçme oluşturur: `withTheme(withAuth(withLogger(MyPage)))`. DevTools birçok adsız sarmalayıcı katmanı gösterir. Kancalar bunu tamamen önler.

Gerçek Dünyada HOC'ler

Redux'un `connect()`, React Router v5'in `withRouter()` ve MobX'in `observer()` işlevlerinin tümü HOC'dir. HOC'leri anlamak, bu eski kitaplıkların arayüzleriyle çalışmanıza yardımcı olur.

Hızlı Kontrol

Yüksek dereceli bir bileşen, aldığı özelliklerle her zaman ne yapmalıdır?

Özet

HOC'ler bir bileşeni alan ve geliştirilmiş bir bileşen döndüren işlevlerdir. Özellik ekler, rotaları korur ve günlükleme yaparlar. Özellikleri her zaman yayın, displayName ayarlayın ve başvuruları iletin. Modern React'te kancaları tercih edin.

Sırada

Sıradaki ders: **HOC ve Oluşturma Özellikleri ve Özel Kancalar** — üç kod paylaşma stratejisini okunabilirlik, sınama ve bileşim açısından karşılaştıracaksınız.

Sıkça Sorulan Sorular

“Üst Düzey Bileşenler (HOC'lar) Açıklaması” dersi ücretsiz mi?

Evet — “Üst Düzey Bileşenler (HOC'lar) Açıklaması” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.

“Üst Düzey Bileşenler (HOC'lar) Açıklaması” dersinde ne öğreneceğim?

Prop'ları eklemek, rotaları korumak veya HOC fabrikaları aracılığıyla günlük kaydı eklemek için bileşenleri sarın. React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

React Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Üst Düzey Bileşenler (HOC'lar) Açıklaması” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu React Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Render Props Deseni
  2. Üst Düzey Bileşenler (HOC'lar) Açıklaması
  3. HOC ve Render Props ve Özel Hook'lar
  4. HOC'yi Özel Hook'a Yeniden Düzenleme
← React Academy Sayfasına Dön