0Pricing
React Academy · Ders

Render Props Deseni

Arayüzü birbirine bağımlı hâle getirmeden davranışı paylaşmak için JSX döndüren bir işlevi prop olarak aktarın.

Render Props Deseni, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 1. 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, JSX döndüren bir işlevi özellik olarak geçirme anlamına gelen oluşturma özellikleri desenini anlayacak ve bileşenler arasında davranış paylaşmak için ne zaman yararlı olduğunu öğreneceksiniz.

Oluşturma Özellikleri Nedir?

Oluşturma özellikleri, bir bileşenin işlev olan bir özelliği kabul ettiği bir desendir. Bileşen, oluşturulan çıktısını üretmek için bu işlevi çağırır. Kullanıcı arayüzünü kullanan taraf, davranışı ise bileşen denetler.
<DataProvider render={data => <UserCard user={data} />} />

Basit Oluşturma Özelliği Örneği

Bir Toggle bileşeni açık/kapalı durumunu yönetir ve geçerli durumla bir değiştirme işlevini oluşturma özelliğine aktarır. Nasıl oluşturulacağına kullanan taraf karar verir.
function Toggle({ render }) {
  const [on, setOn] = useState(false);
  return render(on, () => setOn(!on));
}

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

Çocukları Oluşturma Özelliği Olarak Kullanma

Adlandırılmış bir oluşturma özelliği yerine `children` değerini bir işlev olarak kullanabilirsiniz. Birçok kitaplık (React Router v5, Formik) bu deseni kullanır; bu desen bazen "işlev olarak çocuklar" diye adlandırılır.
<Toggle>
  {(on, toggle) => (
    <div>
      {on && <Panel />}
      <button onClick={toggle}>Toggle</button>
    </div>
  )}
</Toggle>

Fare Konumu İzleyicisi

Klasik bir oluşturma özellikleri örneği: MouseTracker bileşeni imleç konumunu izler ve bunu bir oluşturma özelliğine aktarır. Her kullanan taraf konumu istediği şekilde görüntüleyebilir.
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>
  );
}

Oluşturma Özellikleri ve Özel Kancalar

Oluşturma özellikleri, kancalardan önce başvurulan temel desendi. Özel kancalar artık aynı işi daha temiz biçimde yapıyor: kanca verileri ve işlevleri döndürür, bileşen de bunları kendi JSX'i içinde kullanır. Modern React'te kancalar tercih edilir.
// Old: render props
<Mouse render={pos => <p>{pos.x}</p>} />

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

Oluşturma Özellikleri Ne Zaman Hâlâ Mantıklıdır

Oluşturma özellikleri şu durumlarda hâlâ yararlıdır: (1) ağaçta belirli bir konuma dinamik oluşturma eklemeniz gerektiğinde, (2) mantığı kullanıcı arayüzünden ayıran başsız bir bileşen kitaplığı oluşturduğunuzda.

Performans Uyarısı

Satır içinde bir oluşturma özelliği tanımlamak, her üst bileşen oluşturmasında yeni bir işlev oluşturur ve PureComponent/React.memo alt bileşenlerinin yeniden oluşturmayı atlamasını engeller. Oluşturma özelliği işlevlerini kararlı bir değişkene veya yönteme çıkarın.
// Avoid: new function every render
<Toggle render={pos => <Dot pos={pos} />} />

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

Oluşturma Özelliklerini Birleştirme

Birden fazla oluşturma özelliği bileşenini iç içe yerleştirmek kısa sürede "oluşturma özelliği cehennemi" veya "sarmalayıcı cehennemi" oluşturur; okunması zor, derin biçimde iç içe geçmiş geri çağrılar ortaya çıkar. Kancaların geliştirilmesinin nedenlerinden biri budur.

Kitaplıklarda Oluşturma Özellikleri

React Router v5, Route için oluşturma özelliklerini kullandı. Downshift, Formik ve React-Table da bu desenin farklı biçimlerini kullanır. Oluşturma özelliklerini anlamak, bu kitaplıkları kullanan kodu okumanıza ve hatalarını ayıklamanıza yardımcı olur.

Hızlı Kontrol

Oluşturma özellikleri deseninin statik JSX geçirmeye göre temel avantajı nedir?

Özet

Oluşturma özellikleri, JSX döndüren bir işlev geçirir. Davranışı bileşen, kullanıcı arayüzünü ise kullanan taraf sağlar. Modern React'te özel kancaları tercih edin; ancak mevcut kodu okumak ve başsız bileşenler oluşturmak için oluşturma özelliklerini anlayın.

Sırada

Sıradaki ders: **Yüksek Dereceli Bileşenler (HOC) Açıklaması** — özellik eklemek, rotaları korumak veya günlükleme yapmak için bileşenleri sarmalayacaksınız.

Sıkça Sorulan Sorular

“Render Props Deseni” dersi ücretsiz mi?

Evet — “Render Props Deseni” 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.

“Render Props Deseni” dersinde ne öğreneceğim?

Arayüzü birbirine bağımlı hâle getirmeden davranışı paylaşmak için JSX döndüren bir işlevi prop olarak aktarı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 1. dersidir.

“Render Props Deseni” 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