Satır Seçimi ve Sanallaştırılmış Tablolar
Onay kutusuyla satır seçimi ekleyip büyük veri kümelerini görüntülemek için TanStack Table'ı TanStack Virtual ile birleştirin
Satır Seçimi ve Sanallaştırılmış Tablolar, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 4. 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.
Satır Seçimini Etkinleştirme
id değeri 'select' olan bir seçim sütununu ColumnDef dizinize ekleyin. Hücre, row.getToggleSelectedHandler() öğesine bağlanmış bir onay kutusu oluşturur. Başlık, table.getToggleAllRowsSelectedHandler() kullanarak tümünü seçen bir onay kutusu oluşturur.
Ayrıca rowSelection durumunu ve onRowSelectionChange işleyicisini useReactTable öğesine geçirin.
Seçim Durumunu Denetleme
row.getIsSelected(), bir satır o anda seçili olduğunda true döndürür; bu da seçili satırlara vurgulanmış bir arka plan stili uygulamak için idealdir.
row.getIsSomeSelected(), bir gruptaki satırların yalnızca bazıları seçildiğinde belirsiz onay kutusu durumunu yönetir; bu, gruplandırılmış tablolar için kullanışlıdır.
Seçili Satırları Alma
table.getSelectedRowModel().rows, o anda seçili olan tüm satır nesnelerinden oluşan bir dizi döndürür. Her satırda, özgün veri nesnesini içeren bir row.original özelliği bulunur.
"Seçilenleri sil" veya "Seçilenleri dışa aktar" gibi seçili küme üzerinde işlem yapan toplu işlem düğmelerini bu şekilde oluşturabilirsiniz.
Toplu İşlem Kullanıcı Arayüzü Deseni
İşlem düğmelerini table.getSelectedRowModel().rows.length > 0 koşuluna göre koşullu olarak oluşturun. Hiçbir satır seçilmediğinde, boş durum etkileşimlerinin kafa karıştırmasını önlemek için toplu işlem araç çubuğunu gizleyin veya devre dışı bırakın.
Seçili sayısını kullanıcı arayüzünde görüntüleyin: "{count} satır seçildi" ifadesi, kullanıcıların seçimlerinden haberdar olmasını sağlar.
Tabloları Neden Sanallaştırmalı?
10.000 satırı DOM düğümleri olarak oluşturmak son derece yavaştır. Tarayıcı binlerce öğenin yerleşimini hesaplamalı, bunları boyamalı ve yönetmelidir. Kullanıcılar takılarak kaydırma ve yavaş ilk oluşturma deneyimi yaşar.
Sanallaştırma, yalnızca görünüm alanında o anda görünür olan satırları oluşturur; böylece DOM boyutunu önemli ölçüde küçültür ve performansı artırır.
TanStack Virtual'ı Yükleme
@tanstack/react-virtual paketini @tanstack/react-table paketinin yanında yükleyin. İki kitaplık birbirinden bağımsızdır ancak birbirini tamamlayacak şekilde tasarlanmıştır. TanStack Table veri mantığınızı, TanStack Virtual ise DOM'da hangi öğelerin oluşturulacağını yönetir.
Bütünleştirme noktası, table.getRowModel().rows tarafından döndürülen satır dizisidir.
useVirtualizer Kurulumu
useVirtualizer({ count: table.getRowModel().rows.length, getScrollElement: () => tableContainerRef.current, estimateSize: () => 35 }) çağrısını yapın. count değeri, tüm filtrelerden sonraki geçerli satır sayısıyla eşleşerek kaç sanal öğenin bulunacağını belirler.
estimateSize başlangıç satır yüksekliği tahminini sağlar; gerçek yükseklikler satırlar oluşturuldukça ölçülür.
Sanal Öğeleri Oluşturma
Şu anda DOM'da bulunması gereken satırları almak için virtualizer.getVirtualItems() çağrısını yapın. Bu dizi üzerinde yineleyin, gerçek satıra table.getRowModel().rows[virtualRow.index] aracılığıyla erişin ve yalnızca bu tr öğelerini oluşturun.
Her sanal öğe, kaydırma kapsayıcısı içindeki mutlak konumlandırma için bir start özelliğine sahiptir.
Aralayıcı div'ler Eklemek
Doğru kaydırma konumunu korumak için, yüksekliği ilk sanal öğenin start değerine eşit olan bir üst aralayıcı div'i ve yüksekliği toplam boyuttan son öğenin end değeri çıkarılarak hesaplanan bir alt aralayıcı div'i ekleyin.
Bu görünmez div'ler, oluşturulmayan satırların kaplayacağı alanı doldurarak kaydırma çubuğunun orantısının doğru kalmasını sağlar.
measureElement ile Dinamik Satır Yüksekliği
Doğru dinamik satır yükseklikleri için measureElement: el => el.getBoundingClientRect().height ifadesini useVirtualizer öğesine geçirin. Her satırın ref'i tr öğesine bağlanır; böylece sanallaştırıcı, satırın oluşturulmuş gerçek yüksekliğini ölçer.
Bu yaklaşım, farklı içeriklere sahip satırları (çok satırlı metinler, genişletilmiş satırlar) yerleşim kaymaları olmadan yönetir.
Tüm Özellikleri Birleştirme
Sıralama, filtreleme, sayfalama, satır seçimi ve TanStack Virtual içeren TanStack Table özellikleri birlikte birleşir. useVirtualizer öğesine aktarılan satır sayısı, tüm etkin satır modelleri verileri işledikten sonraki table.getRowModel().rows değerinden alınmalıdır.
Sayfalama etkinleştirildiğinde önce sayfalayın, ardından büyük bir sayfa içinde akıcı kaydırma için geçerli sayfanın satırlarını sanallaştırın.
TanStack Table Satır Seçimi
Şu anda seçili olan tüm satırların özgün veri nesnelerini hangi yöntem döndürür?
Ders Özeti
Satır seçimi; getToggleSelectedHandler içeren bir onay kutusu sütununu, rowSelection durumunu ve seçili verilere erişmek için table.getSelectedRowModel().rows değerini kullanır. useVirtualizer ile sanallaştırma, getVirtualItems, aralayıcı div'ler ve dinamik yükseklikler için isteğe bağlı measureElement kullanarak yalnızca görünür satırları oluşturur.
TanStack Table'ın tüm özellikleri (sıralama, filtreleme, sayfalama, seçim), sanal oluşturmayla sorunsuz biçimde birleşir.
Sıkça Sorulan Sorular
“Satır Seçimi ve Sanallaştırılmış Tablolar” dersi ücretsiz mi?
Evet — “Satır Seçimi ve Sanallaştırılmış Tablolar” 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.
“Satır Seçimi ve Sanallaştırılmış Tablolar” dersinde ne öğreneceğim?
Onay kutusuyla satır seçimi ekleyip büyük veri kümelerini görüntülemek için TanStack Table'ı TanStack Virtual ile birleştirin 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 4. dersidir.
“Satır Seçimi ve Sanallaştırılmış Tablolar” 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
- TanStack Table Felsefesi ve Başlıksız Tasarım
- Sütunları Tanımlama ve Satırları Görüntüleme
- Sıralama, Filtreleme ve Sayfalama
- Satır Seçimi ve Sanallaştırılmış Tablolar