İçeriğe geç
parazade

Hook Ne Demek?

Yayın: · Son güncelleme:

Hook Ne Demek? Kısaca

Hook (kanca), yazılımda bir programın belirli bir anına kendi kodunuzu bağlamanızı sağlayan yapıdır. React'te ise useState ve useEffect gibi, fonksiyon bileşenlerine durum ve yaşam döngüsü özellikleri ekleyen özel fonksiyonları ifade eder.

Hook nedir?
İçindekiler
  1. Hook ne demek?
  2. React'te hook nedir?
  3. Hangi kurallara dikkat etmeli?

Hook ne demek?

Hook, İngilizcede kanca anlamına gelir. Yazılımda, bir sistemin akışı içinde belirli bir noktaya "takılan" ve o an geldiğinde çalışan kodu anlatır. Örneğin bir WordPress eklentisi, yazı yayımlandığı anda çalışacak bir fonksiyonu hook yardımıyla sisteme bağlar.

Git'te de benzer bir kullanım vardır. Commit atılmadan hemen önce testleri ya da linter kontrolünü çalıştıran betikler "Git hook" olarak adlandırılır.

React'te hook nedir?

React'te hook, fonksiyon bileşenlerine ek yetenek kazandıran ve adı "use" ile başlayan fonksiyonlardır. 2019'da React 16.8 sürümüyle gelmişlerdir. Daha önce durum tutmak için sınıf bileşeni yazmak gerekiyordu; hook'lar bu ihtiyacı büyük ölçüde ortadan kaldırdı.

En sık kullanılan iki hook şunlardır:

  • useState: bileşene değişebilen bir değer ekler, örneğin bir sayaç.
  • useEffect: bileşen ekrana geldiğinde ya da bir değer değiştiğinde yan işler yapar, örneğin sunucudan veri çekmek.

Varsayımsal bir hava durumu bileşeni düşünün. useState ile sıcaklık değeri tutulur, useEffect ile sayfa açıldığında hava durumu servisinden veri istenir. Veri geldiğinde durum güncellenir ve ekranda sıcaklık görünür.

Hangi kurallara dikkat etmeli?

React hook'ları yalnızca bileşenin en üst düzeyinde çağrılmalıdır; bir if bloğunun ya da döngünün içinde çağrılmamalıdır. Bu kural, React'in hook'ları her çizimde aynı sırayla bulmasını sağlar.

useEffect içinde bağımlılık listesini eksik yazmak, gereksiz tekrar eden istekler ya da güncellenmeyen veriler gibi zor fark edilen hatalara yol açar. React'in resmî linter eklentisini açık tutmak bu hataların çoğunu yazarken yakalar.

Sıkça Sorulan Sorular

Hook ile webhook aynı şey mi?

Hayır. Hook, bir programın içindeki belirli bir ana kod bağlamaktır. Webhook ise bir olay olduğunda bir sistemin başka bir sisteme internet üzerinden otomatik bildirim göndermesidir.

Kendi hook'umu yazabilir miyim?

Evet, React'te adı "use" ile başlayan ve içinde başka hook'ları kullanan fonksiyonlar özel hook olarak yazılabilir. Bu sayede aynı mantığı birden fazla bileşende tekrar kullanırsınız.

İlgili terimler

React.jsReact.js, Meta (eski adıyla Facebook) tarafından geliştirilen, kullanıcı arayüzlerini yeniden kullanılabilir bileşenlerle kurmayı sağlayan açık kaynaklı bir JavaScript kütüphanesidir. Tek sayfa web uygulamalarında çok yaygındır.Durum Yönetimi(State Management)Durum yönetimi (state management), bir uygulamada kullanıcı girişi, sepet içeriği, açık menü gibi zamanla değişen verilerin nerede tutulacağını ve ekranın bu değişikliklere nasıl tepki vereceğini düzenleyen yaklaşımdır.WebhookWebhook, bir sistemde belirli bir olay gerçekleştiğinde, önceden verilen bir adrese otomatik olarak HTTP isteği gönderen bildirim mekanizmasıdır. Ödeme alındığında mağazanın anında haberdar olması buna örnektir.Bileşen(Component)Bileşen (component), bir yazılımın ya da kullanıcı arayüzünün kendi görevi olan, bağımsız ve yeniden kullanılabilir parçasıdır. Web geliştirmede düğme, ürün kartı ya da menü gibi arayüz parçaları bileşen olarak yazılır.GitGit, dosyalardaki değişiklikleri kayıt altına alan, eski sürümlere dönmeyi ve ekiplerin aynı proje üzerinde paralel çalışmasını sağlayan ücretsiz ve açık kaynaklı dağıtık sürüm kontrol sistemidir. 2005'te Linus Torvalds tarafından geliştirilmiştir.LinterLinter, kaynak kodu çalıştırmadan inceleyip olası hataları, şüpheli kullanımları ve ekip yazım kurallarına aykırı satırları işaretleyen statik analiz aracıdır. ESLint ve Pylint yaygın örneklerdir.Fonksiyon(Function)Fonksiyon, programlamada belirli bir işi yapan, isim verilmiş ve gerektiğinde tekrar tekrar çağrılabilen kod bloğudur. Girdi olarak parametre alabilir ve geriye bir değer döndürebilir.