Rijselectie en gevirtualiseerde tabellen
Voeg rijselectie met checkboxen toe en combineer TanStack Table met TanStack Virtual voor het renderen van grote datasets
Rijselectie en gevirtualiseerde tabellen is een gratis React Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject React Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus React Academy bevat in totaal 4 lessen.
Rijselectie inschakelen
Voeg een selectiekolom toe aan je array met ColumnDef-objecten met de id 'select'. De cel geeft een selectievakje weer dat is gekoppeld aan row.getToggleSelectedHandler(). De kop geeft een selectievakje voor alles selecteren weer met table.getToggleAllRowsSelectedHandler().
Geef ook rowSelection-status en onRowSelectionChange door aan useReactTable.
Selectiestatus controleren
row.getIsSelected() retourneert true wanneer een rij momenteel is geselecteerd. Dat is ideaal om geselecteerde rijen een gemarkeerde achtergrondstijl te geven.
row.getIsSomeSelected() verwerkt de onbepaalde selectievakstatus wanneer slechts enkele rijen in een groep zijn geselecteerd, wat handig is voor gegroepeerde tabellen.
Geselecteerde rijen ophalen
table.getSelectedRowModel().rows retourneert een array met alle momenteel geselecteerde rijobjecten. Elke rij heeft een eigenschap row.original met het oorspronkelijke gegevensobject.
Zo bouw je knoppen voor acties op meerdere items, zoals "Geselecteerde verwijderen" of "Geselecteerde exporteren".
Interfacepatroon voor bulkacties
Geef actieknoppen conditioneel weer op basis van table.getSelectedRowModel().rows.length > 0. Als er geen rijen zijn geselecteerd, verberg of schakel je de werkbalk voor bulkacties uit om verwarrende interacties met een lege toestand te voorkomen.
Toon het aantal geselecteerde rijen in de interface: "{count} rijen geselecteerd" houdt gebruikers op de hoogte van hun selectie.
Waarom tabellen virtualiseren?
10.000 rijen als DOM-knooppunten weergeven is extreem traag. De browser moet de lay-out berekenen, duizenden elementen tekenen en beheren. Gebruikers ervaren haperend scrollen en trage eerste weergaven.
Virtualisatie geeft alleen de rijen weer die momenteel in de viewport zichtbaar zijn. Daardoor wordt de DOM aanzienlijk kleiner en verbeteren de prestaties.
TanStack Virtual installeren
Installeer @tanstack/react-virtual naast @tanstack/react-table. De twee bibliotheken zijn afzonderlijk, maar ontworpen om elkaar aan te vullen. TanStack Table beheert je datalogica; TanStack Virtual beheert welke items in de DOM worden weergegeven.
Het koppelpunt is de array met rijen uit table.getRowModel().rows.
useVirtualizer instellen
Roep useVirtualizer({ count: table.getRowModel().rows.length, getScrollElement: () => tableContainerRef.current, estimateSize: () => 35 }) aan. De waarde van count bepaalt hoeveel virtuele items er bestaan, in overeenstemming met het huidige aantal rijen na alle filters.
estimateSize levert een eerste schatting van de rijhoogte; de werkelijke hoogten worden gemeten terwijl rijen worden weergegeven.
Virtuele items weergeven
Roep virtualizer.getVirtualItems() aan om alleen de rijen op te halen die momenteel in de DOM horen te staan. Pas een map-bewerking toe op deze array, haal de echte rij op via table.getRowModel().rows[virtualRow.index] en geef alleen die tr-elementen weer.
Elk virtueel item heeft een eigenschap start voor absolute positionering binnen de scrollcontainer.
Opvuldivs toevoegen
Voeg bovenaan een opvuldiv toe met een hoogte die gelijk is aan start van het eerste virtuele item, en onderaan een opvuldiv met een hoogte die gelijk is aan de totale grootte min het einde van het laatste item.
Deze onzichtbare divs vullen de ruimte op die niet weergegeven rijen zouden innemen, zodat de schuifbalk de juiste verhouding behoudt.
Dynamische rijhoogte met measureElement
Geef measureElement: el => el.getBoundingClientRect().height door aan useVirtualizer voor nauwkeurige dynamische rijhoogten. De verwijzing van elke rij wordt aan het tr-element gekoppeld, zodat de virtualizer de werkelijke weergegeven hoogte kan meten.
Dit werkt voor rijen met wisselende inhoud, zoals tekst over meerdere regels en uitgevouwen rijen, zonder verschuivingen in de lay-out.
Alle functies combineren
TanStack Table met sortering, filtering, paginering, rijselectie en TanStack Virtual kan volledig worden gecombineerd. Het aantal rijen dat je aan useVirtualizer doorgeeft, moet afkomstig zijn van table.getRowModel().rows nadat alle actieve rijmodellen de gegevens hebben verwerkt.
Als paginering is ingeschakeld, pas je eerst paginering toe en virtualiseer je daarna de rijen van de huidige pagina voor soepel scrollen binnen een grote pagina.
Rijselectie in TanStack Table
Welke methode retourneert de oorspronkelijke gegevensobjecten voor alle momenteel geselecteerde rijen?
Lesoverzicht
Rijselectie gebruikt een selectiekolom met getToggleSelectedHandler, rowSelection-status en table.getSelectedRowModel().rows om geselecteerde gegevens op te halen. Virtualisatie met useVirtualizer geeft alleen zichtbare rijen weer met getVirtualItems, opvuldivs en eventueel measureElement voor dynamische hoogten.
Alle functies van TanStack Table, zoals sorteren, filteren, pagineren en selecteren, kunnen probleemloos worden gecombineerd met virtuele weergave.
Leer React met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 88
- Lessen
- 324
Veelgestelde vragen
Is de les “Rijselectie en gevirtualiseerde tabellen” gratis?
Ja — de volledige tekst van “Rijselectie en gevirtualiseerde tabellen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus React Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus React Academy bevat in totaal 4 lessen.
Wat leer ik in “Rijselectie en gevirtualiseerde tabellen”?
Voeg rijselectie met checkboxen toe en combineer TanStack Table met TanStack Virtual voor het renderen van grote datasets Je oefent met React Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met React Academy te beginnen?
Ervaring vooraf is niet nodig. React Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Rijselectie en gevirtualiseerde tabellen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over React Academy?
Ja. Elke les over React Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Filosofie en headless ontwerp van TanStack Table
- Kolommen definiëren en rijen renderen
- Sorteren, filteren en pagineren
- Rijselectie en gevirtualiseerde tabellen