Skip to content

React Hooks açıklaması

Günlük işlerde kullanılan React hook'ları, işlevlerine göre gruplandırılmış: durum tutma, effect çalıştırma, hesaplama önbelleğe alma, context paylaşma ve render dışına erişme. Her satır, hook'u ne için kullanılacağıyla eşleştirir.

Hook, bir fonksiyon bileşeninin React özelliklerine — durum, yaşam döngüsü, context ve performans ayarı — erişmesini sağlayan fonksiyondur. İki kural vardır: hook'ları en üst düzeyde çağırın (asla döngülerin veya koşulların içinde değil) ve yalnızca React fonksiyonlarından çağırın. Gerisi, işe uygun doğru hook'u seçmektir.

Referans tablosu · 24 kayıt
24 of 24 rows
Durum
Değiştiğinde yeniden render tetikleyen tek bir değer tutar.Bileşene özgü yerel durum: form alanları, aç/kapat anahtarları, sayaçlar.
Bir action reducer tarafından yönlendirilen durumu tutar; küçük bir store gibidir.Birbiriyle ilişkili birçok alanı veya karmaşık geçişleri olan durum.
Yeniden render tetiklemeyen, değiştirilebilir bir değer tutar.Değiştirilebilir kapsayıcılar, zamanlayıcılar ve .current üzerinden doğrudan DOM erişimi.
Effect'ler
Render'dan sonra, isteğe bağlı bir temizleme fonksiyonuyla birlikte bir yan etki çalıştırır.Veri çekme, abonelikler ve harici bir sistemle eşitleme.
Bir effect'in döndürdüğü fonksiyon, bir sonraki effect'ten önce ve unmount sırasında tekrar çalışır.Abonelikleri ve zamanlayıcıları kapatmak ya da devam eden bir fetch'i iptal etmek.
useEffect gibidir, ancak DOM değişikliğinden sonra senkron olarak tetiklenir.Tarayıcı boyamadan önce düzeni okumak veya yazmak (toast'lar, tooltip'ler).
Olay işleyicileri bir kullanıcı eylemine yanıt olarak çalışır; effect'ler ise eşitlemek için render'dan sonra çalışır.Kullanıcı kaynaklı mantık işleyicide, render kaynaklı mantık effect içinde yer alır.
Geliştirme ortamında bileşenleri iki kez mount eder; böylece effect'ler çalışır, temizlenir ve yeniden çalışır.Çift abonelikleri ve eksik temizlemeyi üretime geçmeden önce yakalamak.
Performans
Bağımlılıkları değişene kadar hesaplanmış bir değeri önbelleğe alır.Render'lar arasında pahalı yeniden hesaplamalardan kaçınma; önbelleği bozmak için bağımlılıklardaki bir değeri bilinçli olarak değiştirin.
Bağımlılıkları değişene kadar bir fonksiyon referansını önbelleğe alır.Memo'lanmış alt bileşenlere geçirilen veya bağımlılık olarak kullanılan kararlı callback'ler.
Prop'ları değişmeyen bir bileşenin yeniden render edilmesini atlar.Ağır alt bileşenler; sığ eşitlik yeterli olmadığında ikinci argüman olarak bir karşılaştırma fonksiyonu geçirin (bir hook değil, HOC'dir).
Context ve dış tutamaçlar
Prop drilling'e gerek kalmadan bir context değerini okur.Ağaç genelinde paylaşılan tema, yerel ayar veya kimliği doğrulanmış kullanıcı.
Bir ebeveynin ref üzerinden gördüğü örneği özelleştirir.forwardRef ile bir alt bileşenden dar kapsamlı bir API açığa çıkarmak.
Eşzamanlılık ve diğerleri
Bir durum güncellemesini acil olmayan olarak işaretler; böylece arayüz duyarlı kalır.Ağır bir liste yeniden render edilirken girdinin akıcı kalmasını sağlamak.
Bir değeri erteler; böylece güncellemeler kesilebilir hâle gelir.Zamanlayıcı kullanmadan pahalı render'ları debounce etmek.
Erişilebilirlik öznitelikleri için kararlı ve benzersiz bir kimlik üretir.Sunucu ve istemci render'ları arasında label ile input'u eşleştirmek.
Render sırasında bir promise veya context okur; koşullu çağırabileceğiniz tek hook'tur.Bir promise'i Suspense ile açmak veya erken bir return içinde context okumak.
Bir form action tarafından yönlendirilen durumu tutar; pending bayrağı da dahildir.Hata veya satır içinde gösterilecek güncel durum döndüren form gönderimleri.
Bir iyimser değeri hemen render eder; action tamamlandığında gerçek duruma döner.Sunucu isteği devam ederken bir beğeniyi veya gönderilen mesajı göstermek.
Çevreleyen <form> öğesinin pending durumunu okur; prop gerekmez.Üst form gönderilirken kendini devre dışı bırakan bir gönder düğmesi.
React dışındaki bir store'a abone olur ve tutarlı tek bir anlık görüntü okur.Çevrimiçi durumu gibi tarayıcı API'leri veya üçüncü taraf durum store'ları.
Layout effect'lerinden önce çalışır; CSS-in-JS kuralları enjekte etmek için yapılmıştır.Düzen okunmadan önce kural eklemesi gereken stil kütüphaneleri.
React DevTools'ta bir hook'un iç durumu için özel bir etiket gösterir.Hata ayıklarken özel bir hook'un ne tuttuğunu etiketlemek.
Mantığı paylaşmak için yerleşik hook'ları birleştiren, size ait bir hook.useFetch veya useMediaQuery gibi yeniden kullanılabilir durumlu davranışlar.