FixedSizeList: Tausende Elemente rendern
Richten Sie die FixedSizeList von react-window für Zeilen mit einheitlicher Höhe ein und verbinden Sie sie mit Ihren Daten.
FixedSizeList: Tausende Elemente rendern ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des React Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.
react-window installieren
Sie fügen react-window mit Ihrem Package-Manager zu einem Projekt hinzu, indem Sie beispielsweise das Paket react-window installieren. Es ist klein und hat keine umfangreichen Abhängigkeiten.
Nach der Installation importieren Sie die benötigten Listenkomponenten, meistens FixedSizeList für Zeilen mit einheitlicher Höhe.
Erforderliche Props von FixedSizeList
FixedSizeList benötigt mehrere Props, um zu funktionieren: height und width definieren den Scrollcontainer, itemCount gibt die Anzahl der Elemente an und itemSize die Höhe jeder Zeile in Pixeln.
Die children-Prop ist eine Render-Funktion, die eine einzelne Zeile zeichnet. Damit kennt die Komponente die Geometrie, die sie für korrektes Windowing benötigt.
Die Render-Funktion für Zeilen
Die children-Render-Funktion erhält ein Objekt mit index und style. index gibt an, welches Element gerendert werden soll, sodass Sie die passenden Daten nachschlagen können. style positioniert die Zeile innerhalb der virtuellen Liste.
Sie geben das JSX für diese einzelne Zeile zurück, und react-window ruft die Funktion nur für die Zeilen auf, die sich aktuell im sichtbaren Fenster befinden.
Die wichtige style-Prop
Die style-Prop ist unverzichtbar und muss auf das Zeilenelement angewendet werden. react-window positioniert jede Zeile absolut und verwendet top, um sie an der richtigen Stelle innerhalb eines hohen Scrollcontainers zu platzieren.
Ohne die Anwendung von style würden sich alle Zeilen an derselben Position stapeln und die Virtualisierung würde visuell zusammenbrechen.
Das Vergessen von style macht alles kaputt
Der häufigste Fehler bei react-window besteht darin, die style-Prop für die Zeile wegzulassen. Die Liste wirkt dann fehlerhaft: Die Zeilen überlagern sich oben und das Scrollen funktioniert nicht korrekt.
Übernehmen Sie den bereitgestellten style immer mit Spread-Syntax oder weisen Sie ihn dem äußersten Element Ihrer Zeile zu, damit die Positionierung korrekt bleibt.
Daten über itemData übergeben
Statt Ihr Array in der Render-Funktion über eine Closure verfügbar zu machen, können Sie es über die itemData-Prop übergeben. react-window reicht es dann als data-Feld zusammen mit index und style an die Zeile weiter.
Dadurch bleibt die Zeilenkomponente entkoppelt, und die Memoisierung kann erleichtert werden, da die Zeile ihre Daten explizit erhält.
Horizontale Ausrichtung
FixedSizeList unterstützt horizontale Listen über die auf horizontal gesetzte layout-Prop oder je nach Version über die direction-Optionen. itemSize bezeichnet dann die Breite statt der Höhe.
Das ist praktisch für horizontal scrollende Karussells oder Zeitleisten, die ebenfalls viele Elemente enthalten.
overscanCount
Die overscanCount-Prop rendert einige zusätzliche Zeilen direkt außerhalb des sichtbaren Fensters. Dieser Puffer verringert beim schnellen Scrollen die Wahrscheinlichkeit, dass kurzzeitig leerer Raum sichtbar wird, bevor neue Zeilen gemountet werden.
Ein kleiner Overscan sorgt für ein flüssigeres Erlebnis, während ein großer Overscan den Vorteil zunichtemacht, weil zu viele nicht sichtbare Zeilen gemountet werden.
AutoSizer für responsive Container
FixedSizeList benötigt explizite Pixelmaße, was in responsiven Layouts unpraktisch ist. Die begleitende AutoSizer-Komponente misst ihren übergeordneten Container und übergibt width und height über eine Render-Prop an die Liste.
Wenn Sie die Liste in AutoSizer einschließen, kann sie einen flexiblen Container ausfüllen, ohne dass Sie Größen fest codieren müssen. Sie passt sich an Änderungen des Layouts an.
FixedSizeList zusammensetzen
Eine funktionierende FixedSizeList setzt height, width, itemCount und itemSize und rendert Zeilen über eine children-Funktion, die die style-Prop anwendet. Optional kann AutoSizer die Abmessungen bereitstellen, und overscanCount fügt einen Puffer hinzu.
Damit bleiben bei einer Liste beliebiger Länge während des Scrollens nur die sichtbaren Zeilen gemountet, während das Scrollen flüssig bleibt.
Schnelltest: Erforderliche Props von FixedSizeList
Rufen Sie sich ins Gedächtnis, welche Angaben FixedSizeList benötigt, um Zeilen korrekt zu rendern.
Zusammenfassung: FixedSizeList
FixedSizeList rendert gleich hohe Zeilen mithilfe von height, width, itemCount, itemSize und einer children-Render-Funktion, die index und style erhält. Die style-Prop muss angewendet werden, sonst überlagern sich die Zeilen.
Übergeben Sie Daten über itemData, unterstützen Sie ein horizontales Layout, fügen Sie mit einer kleinen overscanCount einen Puffer hinzu und verwenden Sie AutoSizer, um responsive Container ohne fest codierte Abmessungen auszufüllen.
Häufig gestellte Fragen
Ist die Lektion „FixedSizeList: Tausende Elemente rendern“ kostenlos?
Ja — der vollständige Text von „FixedSizeList: Tausende Elemente rendern“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „FixedSizeList: Tausende Elemente rendern“?
Richten Sie die FixedSizeList von react-window für Zeilen mit einheitlicher Höhe ein und verbinden Sie sie mit Ihren Daten. Du übst React Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um React Academy zu starten?
Keine Vorkenntnisse erforderlich. React Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „FixedSizeList: Tausende Elemente rendern“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser React Academy-Lektion Code schreiben und ausführen?
Ja. Jede React Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Das Problem beim Rendern großer Listen
- FixedSizeList: Tausende Elemente rendern
- VariableSizeList: dynamische Zeilenhöhen
- Virtualisierung mit Datenabruf kombinieren