0Pricing
React Academy · Lekcja

FixedSizeList: renderowanie tysięcy elementów

Proszę skonfigurować FixedSizeList z react-window dla wierszy o jednakowej wysokości i połączyć ją z danymi.

FixedSizeList: renderowanie tysięcy elementów to bezpłatna lekcja React Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej React Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs React Academy zawiera 4 lekcji w sumie.

Instalowanie react-window

Pakiet react-window dodaje się do projektu za pomocą menedżera pakietów, na przykład instalując pakiet react-window. Jest niewielki i nie ma ciężkich zależności.

Po instalacji importuje się potrzebne komponenty listy, najczęściej FixedSizeList dla wierszy, które mają taką samą wysokość.

Wymagane właściwości FixedSizeList

FixedSizeList wymaga kilku właściwości, aby działać: height i width definiują kontener przewijania, itemCount określa liczbę elementów, a itemSize wysokość każdego wiersza w pikselach.

Właściwość children jest funkcją renderującą, która rysuje pojedynczy wiersz. Dzięki tym informacjom komponent zna geometrię potrzebną do prawidłowego okienkowania.

Funkcja renderująca wiersz

Funkcja renderująca children otrzymuje obiekt zawierający index i style. index wskazuje, który element należy wyrenderować, dzięki czemu można odczytać właściwe dane, a style umieszcza wiersz na odpowiedniej pozycji na wirtualizowanej liście.

Zwraca się JSX dla pojedynczego wiersza, a react-window wywołuje tę funkcję tylko dla wierszy znajdujących się aktualnie w widocznym oknie.

Kluczowa właściwość style

Właściwość style jest niezbędna i musi zostać zastosowana do elementu wiersza. react-window pozycjonuje każdy wiersz absolutnie, używając top do umieszczenia go na właściwym przesunięciu wewnątrz wysokiego kontenera przewijania.

Bez zastosowania style wszystkie wiersze ułożyłyby się w tej samej pozycji, a wirtualizacja przestałaby być widoczna.

Pominięcie style psuje wszystko

Najczęstszym błędem w react-window jest pominięcie właściwości style w wierszu. Lista będzie wyglądać na zepsutą: wiersze nałożą się u góry, a przewijanie będzie działać nieprawidłowo.

Zawsze należy rozpropagować otrzymaną właściwość style na najbardziej zewnętrzny element wiersza albo przypisać ją do niego, aby zachować prawidłowe pozycjonowanie.

Przekazywanie danych za pomocą itemData

Zamiast przechwytywać tablicę w zakresie funkcji renderującej, można przekazać ją przez właściwość itemData. react-window przekaże ją następnie do wiersza jako pole data, obok index i style.

Dzięki temu komponent wiersza pozostaje niezależny, co może również pomóc w memoizacji, ponieważ otrzymuje dane jawnie.

Kierunek poziomy

FixedSizeList obsługuje listy poziome za pomocą właściwości layout ustawionej na horizontal albo — zależnie od wersji — za pomocą opcji direction. W takim przypadku itemSize oznacza szerokość zamiast wysokości.

Jest to przydatne w przypadku przewijanych poziomo karuzel lub osi czasu, które również zawierają wiele elementów.

overscanCount

Właściwość overscanCount renderuje kilka dodatkowych wierszy tuż poza widocznym oknem. Ten bufor zmniejsza ryzyko pojawienia się pustego miejsca podczas szybkiego przewijania, zanim zostaną zamontowane nowe wiersze.

Niewielki overscan poprawia płynność, natomiast duży niweluje korzyści, ponieważ powoduje zamontowanie zbyt wielu wierszy poza ekranem.

AutoSizer dla responsywnych kontenerów

FixedSizeList wymaga jawnych wymiarów w pikselach, co jest kłopotliwe w responsywnych układach. Towarzyszący komponent AutoSizer mierzy element nadrzędny i przekazuje do listy wartości width i height za pomocą właściwości render.

Umieszczenie listy w AutoSizer pozwala wypełnić elastyczny kontener bez ręcznego wpisywania wymiarów, a także dostosowywać się do zmian układu.

Składanie FixedSizeList w całość

Działający FixedSizeList ustawia height, width, itemCount i itemSize oraz renderuje wiersze za pomocą funkcji children, która stosuje właściwość style. Opcjonalnie AutoSizer dostarcza wymiary, a overscanCount dodaje bufor.

Po skonfigurowaniu lista dowolnej długości utrzymuje zamontowane tylko widoczne wiersze, a przewijanie pozostaje płynne.

Szybki test: wymagane właściwości FixedSizeList

Przypomnij sobie, jakie informacje należy przekazać FixedSizeList, aby prawidłowo renderować wiersze.

Podsumowanie: FixedSizeList

FixedSizeList renderuje wiersze o jednakowej wysokości, korzystając z height, width, itemCount, itemSize oraz funkcji renderującej children, która otrzymuje index i style. Zastosowanie właściwości style jest obowiązkowe, w przeciwnym razie wiersze nałożą się na siebie.

Dane można przekazywać za pomocą itemData, obsługiwać układ poziomy, dodawać niewielki bufor overscanCount oraz używać AutoSizer do wypełniania responsywnych kontenerów bez ręcznego wpisywania wymiarów.

Często zadawane pytania

Czy lekcja „FixedSizeList: renderowanie tysięcy elementów” jest bezpłatna?

Tak — pełny tekst „FixedSizeList: renderowanie tysięcy elementów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu React Academy, przejdź na CoddyKit PRO. Kurs React Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „FixedSizeList: renderowanie tysięcy elementów”?

Proszę skonfigurować FixedSizeList z react-window dla wierszy o jednakowej wysokości i połączyć ją z danymi. Ćwiczysz React Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć React Academy?

Nie wymagamy żadnego doświadczenia. React Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „FixedSizeList: renderowanie tysięcy elementów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji React Academy?

Tak. Każda lekcja React Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Problem renderowania dużych list
  2. FixedSizeList: renderowanie tysięcy elementów
  3. VariableSizeList: dynamiczne wysokości wierszy
  4. Łączenie wirtualizacji z pobieraniem danych
← Powrót do React Academy