Konfiguracja Astro i React Islands
Skonfigurują Państwo Astro z integracją React i użyją dyrektyw client:load, client:idle oraz client:visible.
Konfiguracja Astro i React Islands to bezpłatna lekcja React Academy na CoddyKit. To lekcja 3 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.
Tworzenie projektu Astro
Utworzenie projektu Astro odbywa się za pomocą npx create astro@latest, które uruchamia interaktywny kreator pozwalający wybrać szablon, ustawienia TypeScriptu i menedżera pakietów. Astro obsługuje wiele szablonów startowych, w tym pusty szablon, szablon bloga oraz szablony dokumentacji.
Dodawanie integracji React
Integracje Astro dodają do projektu obsługę frameworków. Uruchomienie npx astro add react automatycznie instaluje @astrojs/react, react i react-dom, a także aktualizuje astro.config.mjs, dodając do niego integrację React. Cała konfiguracja wymaga tylko jednego polecenia.
Pliki Astro są domyślnie statyczne
Plik .astro to format komponentu Astro. Składa się z sekcji front matter (JavaScriptu umieszczonego między znacznikami ---) oraz sekcji szablonu. Domyślnie plik Astro generuje statyczny HTML — do przeglądarki nie jest wysyłany żaden JavaScript, chyba że jawnie dodadzą Państwo dyrektywę klienta.
Importowanie komponentu React
Importowanie komponentu React do pliku Astro odbywa się za pomocą standardowej składni modułów ES: import Counter from './Counter.jsx'. Bez dyrektywy klienta Astro renderuje komponent React po stronie serwera do postaci statycznego HTML i wysyła ten HTML do przeglądarki — dla komponentu nie jest wysyłany żaden JavaScript.
Aktywowanie wyspy za pomocą dyrektywy
Dodanie client:visible do znacznika komponentu w szablonie Astro przekształca go w wyspę: <Counter client:visible />. Astro wysyła teraz kod JavaScript komponentu Counter, przeprowadza jego hydratację, gdy komponent pojawi się w obszarze widocznym w oknie, i zapewnia mu interaktywność. Bez tej dyrektywy jest on statycznym HTML-em.
Komponenty React korzystają ze standardowego React
Komponenty React używane jako wyspy Astro są pisane w standardowym React — korzystają z hooków, stanu, efektów i dowolnej biblioteki React. Sam komponent React nie używa żadnego API specyficznego dla Astro. Granica wyspy jest definiowana w szablonie Astro, a nie wewnątrz kodu komponentu.
Stan jest odizolowany w każdej wyspie
Każda instancja wyspy jest niezależnym drzewem React. Dwie wyspy Counter na tej samej stronie nie współdzielą stanu. Jeśli potrzebują Państwo współdzielonego stanu, mają Państwo trzy możliwości: połączyć je w jedną wyspę, użyć parametrów zapytania URL do przechowywania stanu możliwego do serializacji albo skorzystać ze współdzielonej biblioteki stanu, takiej jak nanostores.
Komunikacja między wyspami za pomocą Nanostores
Biblioteka @nanostores/react udostępnia lekkie atomy, do których może subskrybować się dowolna wyspa. Jedna wyspa zapisuje wartość w atomie nano store, a inna ją odczytuje. Ponieważ nano stores są niezależne od frameworka, ten wzorzec działa również między wyspami React i Vue na tej samej stronie.
Kolekcje treści Astro
Astro Content Collections zapewniają bezpieczny typowo sposób zarządzania plikami Markdown i MDX. Należy zdefiniować schemat kolekcji za pomocą Zod, umieścić pliki Markdown w src/content/, a Astro wygeneruje w pełni typowane funkcje zapytań. To standardowy wzorzec używany w przypadku wpisów blogowych, dokumentacji i stron produktów.
Budowanie projektu
Uruchomienie astro build generuje folder dist/ zawierający statyczne pliki HTML. Dla każdej strony Astro tworzy plik HTML z treścią wyrenderowaną po stronie serwera oraz tylko tymi paczkami JavaScript, które są potrzebne wyspom na danej stronie. Strony bez wysp nie zawierają żadnego JavaScriptu.
Opcje wdrażania
Statyczne dane wyjściowe można wdrożyć w dowolnej sieci CDN (Netlify, Vercel, Cloudflare Pages) bez serwera. Jeśli potrzebne jest renderowanie po stronie serwera (dynamiczne trasy, punkty końcowe API), Astro obsługuje adaptery SSR dla Node.js, Vercel Edge, Cloudflare Workers i Deno. Wyspy działają identycznie w obu trybach.
Dyrektywa integracji React
Jaka minimalna zmiana w imporcie komponentu React w szablonie Astro jest potrzebna, aby stał się on interaktywny po stronie klienta?
Podsumowanie lekcji
Należy skonfigurować Astro z React za pomocą npx astro add react. Pliki Astro są domyślnie statyczne; dodanie dyrektywy client: do znacznika komponentu React przekształca go w hydratowaną wyspę. Komponenty React są standardowymi komponentami React i nie korzystają z API specyficznych dla Astro. Stan jest odizolowany w każdej wyspie, a nanostores umożliwia komunikację między wyspami. Kompilacja generuje statyczny HTML oraz tylko ten kod JavaScript wysp, który jest potrzebny.
Często zadawane pytania
Czy lekcja „Konfiguracja Astro i React Islands” jest bezpłatna?
Tak — pełny tekst „Konfiguracja Astro i React Islands” 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 „Konfiguracja Astro i React Islands”?
Skonfigurują Państwo Astro z integracją React i użyją dyrektyw client:load, client:idle oraz client:visible. Ć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 3 z 4.
Ile czasu zajmuje lekcja „Konfiguracja Astro i React Islands”?
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
- Problem pełnej hydratacji
- Architektura islands: selektywna hydratacja
- Konfiguracja Astro i React Islands
- Pomiar wydajności: Lighthouse i Core Web Vitals