Çok uzun bir listeyi (on binlerce satır) performanslı nasıl gösterirsiniz?
Cevap
Binlerce DOM düğümü oluşturmak hem render'ı hem kaydırmayı yavaşlatır. Çözümler:
- Sanallaştırma (virtualization / windowing): yalnızca ekranda görünen satırlar (ve birkaç tampon satır) DOM'a eklenir; kaydırdıkça aynı düğümler yeniden kullanılır. Kütüphaneler: TanStack Virtual, react-window.
- Sayfalama veya sonsuz kaydırma: veri parça parça yüklenir.
- Sunucu tarafında filtreleme ve sıralama: istemciye tüm veri gönderilmez.
- CSS ile tarayıcıya yardım:
content-visibility: autoekran dışı bölümlerin render'ını atlar.
const sanal = useVirtualizer({
count: satirlar.length,
getScrollElement: () => kapRef.current,
estimateSize: () => 40,
});
// sanal.getVirtualItems() ile yalnızca görünen ~20 satır çizilirEk olarak satır bileşeni React.memo ile sarılmalı ve key olarak kararlı id kullanılmalıdır.
İlgili Web Performansı soruları
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.