useRef ne işe yarar? useState'ten farkı nedir?
Cevap
useRef, render'lar arasında korunan, değiştirildiğinde yeniden render tetiklemeyen bir kutu ({ current }) döndürür.
Kullanım alanları:
- DOM elemanına erişmek (focus, ölçüm, scroll)
- Render'ı etkilemeyen değerleri saklamak: timer id, önceki değer, abonelik
- Stale closure sorunlarında en güncel değere erişmek
function AramaKutusu() {
const inputRef = useRef(null);
const timerRef = useRef();
useEffect(() => inputRef.current.focus(), []);
const yazildi = (e) => {
clearTimeout(timerRef.current);
timerRef.current = setTimeout(() => ara(e.target.value), 300);
};
return <input ref={inputRef} onChange={yazildi} />;
}Kural: ekranda gösterilen değer state, gösterilmeyen yardımcı değer ref'tir.
İlgili React soruları
- Virtual DOM nedir ve reconciliation nasıl çalışır?
- Listelerde key prop neden önemlidir? Index kullanmak neden sorunludur?
- Controlled ve uncontrolled component farkı nedir?
- useEffect bağımlılık dizisi nasıl çalışır?
- useMemo ile useCallback arasındaki fark nedir?
- Gereksiz render'ları nasıl tespit eder ve önlersiniz?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.