useEffect ile useLayoutEffect arasındaki fark nedir?
Cevap
- useEffect: tarayıcı ekranı çizdikten sonra, asenkron çalışır. Veri çekme, abonelik, loglama gibi işlerin çoğu için doğru seçimdir.
- useLayoutEffect: DOM güncellendikten sonra ama tarayıcı çizmeden önce, senkron çalışır. Çizimi bloklar.
useLayoutEffect gerektiren durum: DOM'u ölçüp hemen ona göre konum ayarlamak (tooltip, popover). useEffect kullanılırsa kullanıcı önce yanlış konumu, sonra düzeltilmiş hâli görür (titreme).
useLayoutEffect(() => {
const { height } = ref.current.getBoundingClientRect();
setTooltipY(height + 8);
}, []);Varsayılan olarak useEffect kullanılmalı; useLayoutEffect sadece görsel titreme varsa.
İ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.