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. BunlaruseMemo/useCallbackile sabitlenmelidir. - Bileşen
childrenalı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.
İ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.