React.memo nedir? Ne zaman işe yaramaz?

Cevap

React.memo, bir bileşeni sarar ve prop'ları yüzeysel olarak değişmediyse yeniden render'ı atlar.

const UrunKarti = React.memo(function UrunKarti({ urun, onSec }) {
  return <div onClick={() => onSec(urun.id)}>{urun.ad}</div>;
});

İşe yaramadığı durumlar:

  • Ebeveyn her render'da yeni nesne, dizi veya fonksiyon prop'u veriyorsa (style={{...}}, onSec={() => ...}) karşılaştırma her seferinde "değişti" der. Bunlar useMemo / useCallback ile sabitlenmelidir.
  • Bileşen children alıyorsa (JSX her render'da yeni nesnedir).
  • Bileşen zaten ucuzsa: karşılaştırmanın maliyeti kazançtan fazla olabilir.

Önce React DevTools Profiler ile gerçekten pahalı render'ı bulmak, sonra memo eklemek gerekir.

  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