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.

  1. Virtual DOM nedir ve reconciliation nasıl çalışır?KolayReactFrontend
  2. Listelerde key prop neden önemlidir? Index kullanmak neden sorunludur?KolayReactFrontend
  3. Controlled ve uncontrolled component farkı nedir?KolayReactFrontend
  4. useEffect bağımlılık dizisi nasıl çalışır?OrtaReactFrontend
  5. useMemo ile useCallback arasındaki fark nedir?OrtaReactFrontend
  6. Gereksiz render'ları nasıl tespit eder ve önlersiniz?ZorReactFrontend

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle