CodeBlanks Logo Icon CodeBlanks

Custom hook nedir?

use ile başlayan fonksiyonların tekrar kullanılabilir mantık parçası olduğunu öğrenirsin.

Custom hook nedir?

Bir custom hook, kendi yazdığın ve adı use ile başlayan bir JavaScript fonksiyonudur. İçinde diğer hook'ları (useState, useEffect vb.) çağırabilir ve bileşenler arasında mantık paylaşımı yapabilirsin.

Örneğin birkaç bileşende aynı sayaç mantığını kullanıyorsan, bunu useCounter adında bir hook'a taşıyıp her bileşende çağırırsın. Bu, kopya kodu önler ve bakımı kolaylaştırır.

İlkesi vardır: adı use ile başlamalı ve yalnızca en üst seviyede (döngü, koşul ya da iç içe fonksiyon içinde değil) çağrılmalıdır. Bu ilkeler React'in hook sırasını takip edebilmesi için şarttır.

İki ilke

Custom hook'lar iki katı ilkeye uyar. Birincisi adlandırma: use öneki zorunludur; bu sayede React bunun bir hook olduğunu bilir ve linter'lar da tanır.

İkincisi çağrı yeri: hook'lar yalnızca bileşenin en üst seviyesinde çağrılır. Döngü içinde, if bloğunda ya da iç içe fonksiyonda çağrılmaz. Bu, React'in her render'da aynı sırada hook'ları çağırmasını sağlar.

Bu iki ilkeye uyduğunda, hook'ları güvenle bileşenler arasında paylaşabilirsin. Aksi halde React hook sırasını şaşırır ve hata fırlatır.

Uygulama useCounter iskeleti

Aşağıdaki iskeleti tamamla. useCounter adında bir custom hook yaz. useState(0) ile count ve setCount tanımla. increment adında bir fonksiyon döndür: () => setCount(c => c + 1). Hook'u dışa aktar.

Başlangıç kodu

App.jsx
import { useState } from "react";

// useCounter hook'unu buraya yaz

Örnek çözüm

App.jsx
import { useState } from "react";

function useCounter() {
  const [count, setCount] = useState(0);
  const increment = () => setCount((c) => c + 1);
  return increment;
}

export default useCounter;

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Custom hook adı ne ile başlar?

  • hook
  • use Doğru cevap
  • custom
  • get

Açıklama: Custom hook adları use ile başlar.

2 Mantık paylaşımı

Soru
Aynı mantığı birden çok bileşende kullanmak için ____ yazılır.
Cevap
Aynı mantığı birden çok bileşende kullanmak için custom hook yazılır.

Açıklama: Custom hook ile mantık paylaşılır.

3 Custom hook kavramlarını eşleştir

Kavram Anlamı
use öneki Adlandırma
en üst seviye Çağrı yeri
useState İçeride çağrılır
paylaşım Amaç

Orta seviye bölümündeki tüm dersler