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 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.