0Pricing
React Academy · Ders

Key ve Ref için En İyi Uygulamalar

Kararlı anahtarlar kullanın, dizini anahtar olarak kullanmanın tuzaklarından kaçının ve geri çağırma ref'leriyle çalışın.

Key ve Ref için En İyi Uygulamalar, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 3. 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 liste anahtarlarını doğru şekilde kullanmayı, dizi indeksini anahtar olarak kullanmanın neden hatalara yol açtığını ve geri çağırma referanslarıyla aktarılmış referanslarla nasıl çalışacağınızı öğreneceksiniz.

Anahtarlar Neden Önemlidir

React, render işlemleri arasında listedeki hangi öğelerin değiştiğini, eklendiğini veya kaldırıldığını takip etmek için `key` özelliklerini kullanır. Doğru bir anahtar, React'in mevcut DOM düğümlerini yeniden kullanmasını sağlar; yanlış bir anahtar gereksiz kaldırma ve yeniden bağlama işlemlerine neden olur.

Kararlı Benzersiz Anahtarlar

En iyi anahtar, verilerinizdeki kararlı ve benzersiz bir ID'dir — örneğin bir veritabanı satırının ID'si veya bir UUID. Bu anahtar yalnızca kardeşler arasında benzersiz olmalıdır; sayfanın tamamında genel olarak benzersiz olması gerekmez.
users.map(user => (
  <UserCard key={user.id} user={user} />
))

İndeksin Anahtar Olarak Kullanılması Neden Sorunludur

Dizi indeksini anahtar olarak kullanmak statik listelerde iyi çalışır, ancak sıralanmış veya filtrelenmiş listelerde hatalara yol açar. Öğeler yeniden sıralandığında React bileşenleri indekse göre eşleştirir ve yanlış DOM düğümlerini yeniden kullanır; bu da girdi değerlerini ve animasyon durumunu bozar.
// Risky when list can reorder or filter
items.map((item, i) => <Row key={i} {...item} />)

İndeks Anahtarının Kabul Edilebilir Olduğu Durumlar

İndeksin anahtar olarak kullanılması yalnızca şu durumlarda kabul edilebilir: (1) liste hiçbir zaman yeniden sıralanmıyor veya filtrelenmiyorsa, (2) öğelerin kararlı bir ID'si yoksa ve (3) öğelerin yerel durumu yoksa (ör. girdi değerleri). Statik görüntüleme listelerinde kullanılabilir.

Kararlı ID'ler Oluşturma

Verilerinizde ID yoksa, öğeyi oluşturduğunuz anda bir ID oluşturun (render sırasında değil). `crypto.randomUUID()` veya `nanoid` kitaplığını kullanabilirsiniz.
const newItem = { id: crypto.randomUUID(), text: 'Buy milk' };

useRef Temelleri

`useRef`, yeniden render işlemlerine neden olmadan render işlemleri boyunca varlığını sürdüren, değiştirilebilir bir nesne döndürür. DOM referanslarını ve zamanlayıcı ID'leri gibi değiştirilebilir değerleri tutmak için kullanılır.
const inputRef = useRef(null);
<input ref={inputRef} />
// Access DOM node: inputRef.current.focus();

Geri Çağırma Referansları

Bir referans nesnesi aktarmak yerine **geri çağırma referansı** aktarabilirsiniz — React, düğüm bağlandığında DOM düğümüyle, düğüm kaldırıldığında ise `null` ile çağırdığı bir işlevdir. Bu, düğüm kullanılabilir hâle geldiğinde tam olarak mantık kurmanızı sağlar.
function Input() {
  return (
    <input
      ref={node => {
        if (node) node.focus();
      }}
    />
  );
}

Bileşen Referansları İçin forwardRef

İşlev bileşenleri `ref` özelliğini normal bir özellik olarak kabul etmez. Üst bileşenlerin bir iç DOM düğümüne referans ekleyebilmesini sağlamak için bileşeni `React.forwardRef` ile sarın.
const FancyInput = React.forwardRef((props, ref) => (
  <input ref={ref} className="fancy" {...props} />
));

// Parent
const inputRef = useRef(null);
<FancyInput ref={inputRef} />

useImperativeHandle

Bir üst bileşen alt bileşene referans tuttuğunda, alt bileşenin tam olarak ne sunacağını `useImperativeHandle` kullanarak denetleyebilirsiniz. Böylece alt bileşenin iç DOM'u gizli kalırken temiz bir emirsel API sağlanır.
const Child = forwardRef((_, ref) => {
  const innerRef = useRef();
  useImperativeHandle(ref, () => ({
    focus: () => innerRef.current.focus(),
  }));
  return <input ref={innerRef} />;
});

Hızlı Kontrol

Yeniden sıralanabilecek bir listedeki dizi indeksini neden anahtar olarak kullanmaktan kaçınmalısınız?

Özet

Anahtar olarak kararlı veri ID'leri kullanın, dinamik listelerde indeks anahtarlarından kaçının, DOM erişimi ve değiştirilebilir değerler için useRef kullanın, bağlama ve kaldırma mantığı için geri çağırma referanslarını kullanın ve alt bileşenlerden referans sunmak için forwardRef kullanın.

Sırada

Sonraki ders: **Klasör Yapısı ve Adlandırma Kuralları** — React projesini özellik temelli klasörlerle ve tutarlı dosya adlandırmayla düzenleyeceksiniz.

Sıkça Sorulan Sorular

“Key ve Ref için En İyi Uygulamalar” dersi ücretsiz mi?

Evet — “Key ve Ref için En İyi Uygulamalar” 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.

“Key ve Ref için En İyi Uygulamalar” dersinde ne öğreneceğim?

Kararlı anahtarlar kullanın, dizini anahtar olarak kullanmanın tuzaklarından kaçının ve geri çağırma ref'leriyle çalışı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 3. dersidir.

“Key ve Ref için En İyi Uygulamalar” 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. StrictMode Ne Yapar
  2. Saf Bileşenler ve Oluşturma Sırasında Yan Etkilerden Kaçınma
  3. Key ve Ref için En İyi Uygulamalar
  4. Klasör Yapısı ve Adlandırma Kuralları
← React Academy Sayfasına Dön