Kluczem do sukcesu jest zrozumienie, kiedy wieloframeworkowość jest narzędziem, a kiedy . Ten artykuł rozbraja tę granicę dla CTO, tech leadów i zespołów frontendowych rozważających Astro jako warstwę łączącą istniejące komponenty albo różne kompetencje w organizacji.
Jak Astro łączy React, Vue i Svelte na jednej stronie?
Astro obsługuje frameworki przez integracje, ponieważ w konfiguracji możesz dodać React, Vue i Svelte:
Potem importujesz komponenty w pliku .astro:
Kluczowe ograniczenie: pliki komponentów frameworka pozostają komponentami swojego frameworka. Reactowy komponent nie miesza w środku Vue, a komponent Svelte nie importuje bezpośrednio komponentu React. Plik .astro jest warstwą kompozycji i jest to jedyne miejsce, gdzie frameworki spotykają się na jednej stronie.
Dyrektywy hydratacji w wieloframeworkowej architekturze wysp
Dyrektywy client:* decydują, kiedy komponent przechodzi i dostaje JavaScript w przeglądarce:
client:loadhydratuje natychmiast po załadowaniu strony,client:idleczeka, aż przeglądarka będzie mniej zajęta,client:visiblehydratuje po wejściu komponentu w viewport,client:mediahydratuje po spełnieniu media query,client:onlyrenderuje komponent wyłącznie po stronie klienta, pomijając całkowicie — komponent nie dostaje nawet renderowania do HTML.
Koszt runtime wielu frameworków w Astro
Wieloframeworkowość nie jest darmowa, ale jej koszt pozostaje pod Twoją pełną kontrolą. danego frameworka trafia do przeglądarki wyłącznie wtedy, gdy świadomie hydratujesz przypisaną do niego wyspę. Jeśli komponent ma pozostać statyczny, klient nie pobiera ani jednego bajta JavaScriptu — i to właśnie ta fundamentalna różnica architektoniczna oddziela Astro od klasycznego .
Praktyczna zasada:
- jedna wyspa React z
client:loadoznacza runtime React na stronie, - wiele wysp React współdzieli ten sam runtime,
- statyczny komponent React bez
client:*renderuje HTML, - trzy frameworki na jednej stronie mają sens tylko wtedy, gdy każda wyspa uzasadnia swój koszt.
Astro pozwala mieszać frameworki, ale nie zwalnia z budżetu JavaScriptu.
Gdzie wieloframeworkowe wyspy w Astro działają najlepiej?
Najlepsze scenariusze to:
- migracja przyrostowa z legacy Vue do React albo odwrotnie,
- dokumentacja techniczna z interaktywnymi przykładami,
- strony marketingowe z pojedynczymi komponentami produktu,
- organizacje, w których kilka zespołów utrzymuje różne fragmenty ,
- użycie gotowej biblioteki, najlepszej w jednym frameworku.
Gdzie wieloframeworkowa architektura wysp tworzy dług?
Wieloframeworkowość zamienia się w dług techniczny dokładnie w momencie, gdy przestaje być narzędziem migracji i staje się stylem pracy. Zaczyna się chaos, bo trzy frameworki to trzy sposoby testowania, trzy zestawy konwencji, różne biblioteki formularzy i różne wzorce stanu — wszystkie utrzymywane równolegle.
Wdrażamy jeden framework tam, gdzie jest to możliwe, ponieważ wielość frameworków uzasadnia się tylko przez konkretny problem. Szczególnie uważaj w sytuacjach, kiedy:
- komponenty muszą współdzielić dużo stanu,
- zespół ma już spójny stack i nie potrzebuje migracji,
- każdy nowy komponent powstaje w innym frameworku bez kryterium,
- nie masz budżetu performance dla hydratowanych wysp,
- debugowanie przepływu danych zaczyna wymagać znajomości kilku ekosystemów.
W takich sytuacjach lepszy będzie jeden framework aplikacyjny albo Next.js z jasno rozdzielonymi Server i Client Components. Ten temat rozwijam w artykule jak server-first Next.js wpływa na SEO i performance.
