0Pricing
React Academy · Ders

VariableSizeList: Dinamik Satır Yükseklikleri

VariableSizeList ve itemSize geri çağırma işlevi kalıbıyla farklı yüksekliklerdeki ögeleri yönetin.

VariableSizeList: Dinamik Satır Yükseklikleri, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.

Öğelerin Farklı Yüksekliklere Sahip Olması

Bazen satırlar aynı ölçüde değildir: bir sohbet listesinde kısa ve uzun iletiler karışabilir veya bir akışta içerikleri farklı kartlar bulunabilir. FixedSizeList bunu işleyemez; çünkü tek bir sabit itemSize varsayar.

Bu durumlarda react-window, her öğenin kendi boyutunu belirtmesine olanak tanıyan bir liste türü sunar.

VariableSizeList, FixedSizeList'in Yerini Alır

VariableSizeList, FixedSizeList gibi çalışır ancak öğe başına farklı bir boyut kabul eder. Bunun yerine onu içe aktarır ve belirli bir indeks için boyutu döndüren bir işlev sağlarsınız.

Diğer her şey, alt öğe oluşturma işlevi ve kritik stil özelliği aynı kalır; bu nedenle geçiş küçüktür.

Bir İşlev Olarak itemSize

VariableSizeList ile itemSize, bir indeks alan ve o satırın piksel cinsinden yüksekliğini döndüren bir işlevdir. react-window bu işlevi uzaklıkları hesaplamak ve görünür pencereye karar vermek için çağırır.

Bu, bilinen yükseklikleri ifade etmenizi sağlar; örneğin görsel içeren öğeler için daha uzun, yalnızca düz metin içerenler için daha kısa satırlar belirleyebilirsiniz.

Önceden Hesaplama ve Ölçme

Her satırın yüksekliğini önceden biliyorsanız itemSize işlevinden bu yüksekliği doğrudan döndürebilirsiniz. Yükseklikler oluşturulan içeriğe bağlıysa satırları çizildikten sonra ölçmeniz gerekir.

Önceden hesaplanan yükseklikler en basit ve en hızlı seçenektir; ölçülen yükseklikler daha esnektir ancak boyutları listeye geri aktarmak için ek çalışma gerektirir.

Ölçümden Sonra resetAfterIndex

VariableSizeList, performans için öğe uzaklıklarını önbelleğe alır. Ölçülen bir yükseklik değiştiğinde, bu indeksten sonraki konumları yeniden hesaplaması için listenin başvurusunda resetAfterIndex yöntemini çağırmanız gerekir.

Bunu unutmak eski uzaklıkların kalmasına ve satırların hizasının bozulmasına neden olur; bu nedenle resetAfterIndex, dinamik ölçümün çalışmasını sağlayan temel unsurdur.

Yükseklik Çıkmazı

Bir tavuk-yumurta sorunu vardır: satırı oluşturmak için yüksekliğe ihtiyaç duyarsınız, ancak gerçek yüksekliği ancak satır oluşturulduktan sonra bilirsiniz. Liste, ölçebilmesi için önce satırı konumlandırmalıdır.

Bunu çözmek için önce bir tahminle oluşturmanız, ardından gerçek yükseklik öğrenildiğinde düzeltmeniz gerekir.

Tahmin Etme, Oluşturma, Ölçme, Güncelleme

Standart düzen; satırları tahmini bir yükseklikle oluşturmak, çizimden sonra bir başvuru veya ResizeObserver kullanarak gerçek yüksekliklerini ölçmek, ölçülen değeri depolamak ve konumları güncellemek için resetAfterIndex'i çağırmaktır.

Bu döngü hızla yakınsar; böylece liste, ilk ölçüm geçişinden sonra doğru uzaklıklara yerleşir.

getItemSize Kararlı Olmalıdır

itemSize işlevi, genellikle useCallback ile sarmalanarak oluşturma işlemleri arasında kararlı kalmalıdır; böylece liste önbelleğe alınmış uzaklıklarını sürekli geçersiz kılmaz.

Satır içinde tanımlanan kararsız bir işlev gereksiz yeniden hesaplamaları zorlayabilir ve sanallaştırmanın sağlaması amaçlanan performansa zarar verebilir.

Performans Maliyeti

VariableSizeList, sabit bir ofset varsayamayacağı ve her öğenin boyutunu ayrı ayrı izlemesi gerektiği için FixedSizeList'e göre daha fazla iş yapar. Yükseklikler ölçüldüğünde, bu ek ölçüm de maliyet getirir.

Satırların gerçekten değişken olduğu listelerde bu maliyete değer; satırların aynı yükseklikte olduğu durumlarda FixedSizeList daha hızlı ve basit seçenek olmaya devam eder.

Yaklaşımla Sabit Boyuta Geri Dönme

Tam dinamik ölçüm çok maliyetliyse bazen yaklaşık değer kullanabilirsiniz. Satırları birkaç sabit yükseklik sınıfında gruplamak veya makul bir ortalama kullanmak, FixedSizeList'i kullanmayı sürdürmenizi sağlayabilir.

Bu yaklaşım, piksel düzeyinde kusursuz yerleşimden basitlik ve hız uğruna vazgeçer; küçük ofset kusurları tolere edilebiliyorsa bu kabul edilebilir bir ödündür.

Hızlı Kontrol: VariableSizeList itemSize

VariableSizeList'in her satırın yüksekliğini nasıl öğrendiğini hatırlayın.

Özet: VariableSizeList

VariableSizeList, itemSize değerini indeks alan bir işlev olarak kullanarak farklı yüksekliklere sahip satırları yönetir. Yükseklikler önceden hesaplanabilir veya ölçülebilir; ölçülen yükseklikler için resetAfterIndex ile tahmin-oluşturma-ölçme-güncelleme döngüsü gerekir.

useCallback ile itemSize işlevini kararlı tutun. Bu yaklaşım FixedSizeList'e göre daha maliyetlidir; bu nedenle satırların aynı yükseklikte olduğu veya yaklaşık değerin yeterli olduğu durumlarda sabit varyantı tercih edin.

Sıkça Sorulan Sorular

“VariableSizeList: Dinamik Satır Yükseklikleri” dersi ücretsiz mi?

Evet — “VariableSizeList: Dinamik Satır Yükseklikleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.

“VariableSizeList: Dinamik Satır Yükseklikleri” dersinde ne öğreneceğim?

VariableSizeList ve itemSize geri çağırma işlevi kalıbıyla farklı yüksekliklerdeki ögeleri yönetin. React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

React Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“VariableSizeList: Dinamik Satır Yükseklikleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu React Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Büyük Liste Görüntüleme Sorunu
  2. FixedSizeList: Binlerce Ögeyi Görüntüleme
  3. VariableSizeList: Dinamik Satır Yükseklikleri
  4. Sanallaştırmayı Veri Getirmeyle Birleştirme
← React Academy Sayfasına Dön