Przejdź do treści

Wieloframeworkowa architektura wysp w Astro: React, Vue i Svelte w jednym projekcie

Trzy frameworki, jeden projekt — Astro naprawdę na to pozwala. Koszty runtime, dyrektywy i ograniczenia ważne w projektach enterprise.

Maciej Sala

Founder StriveLab

4 min czytaniaOpublikowano 18 maja 2026 (Aktualizacja 26 maja 2026)

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:

Code
// astro.config.ts
import { defineConfig } from 'astro/config'
import react from '@astrojs/react'
import vue from '@astrojs/vue'
import svelte from '@astrojs/svelte'
 
export default defineConfig({
  integrations: [react(), vue(), svelte()],
})

Potem importujesz komponenty w pliku .astro:

Code
---
import ReactForm from '../components/ReactForm.tsx'
import VueConfigurator from '../components/VueConfigurator.vue'
import SvelteChart from '../components/SvelteChart.svelte'
---
 
<ReactForm client:load />
<VueConfigurator client:idle />
<SvelteChart client:visible />

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:load hydratuje natychmiast po załadowaniu strony,
  • client:idle czeka, aż przeglądarka będzie mniej zajęta,
  • client:visible hydratuje po wejściu komponentu w viewport,
  • client:media hydratuje po spełnieniu media query,
  • client:only renderuje 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:load oznacza 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.

reguła architektoniczna

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.
Diagram
Kiedy wieloframeworkowość w Astro jest uzasadniona.

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.

Ultraszybkie projekty, łączące lekkość ze skalowalnością.
Astro

Często zadawane pytania

Czy Astro pozwala używać React, Vue i Svelte na jednej stronie?

Tak — i to bez kompromisu na wydajność, jeśli używasz dyrektyw client:* świadomie. Komponenty różnych frameworków importujesz w plikach .astro. Każda wyspa hydratuje się niezależnie, reszta strony pozostaje statycznym HTML.

Czy komponent frameworka w Astro zawsze wysyła JavaScript do klienta?

Nie. Domyślnie Astro renderuje komponent UI do HTML bez wysyłania runtime frameworka. JavaScript trafia do przeglądarki tylko po jawnym dodaniu dyrektywy client:*. Brak dyrektywy = brak klientowego JS.

Kiedy wieloframeworkowość ma sens?

W trzech konkretnych scenariuszach: migracja przyrostowa z jednego frameworka na inny, organizacja z kilkoma zespołami utrzymującymi różne fragmenty UI, użycie gotowej biblioteki najlepszej w jednym ekosystemie. Poza tymi przypadkami — jeden framework jest lepszą decyzją.

Kiedy to jest zły pomysł?

Gdy budujesz aplikację z dużym współdzielonym stanem, gdy zespół jest spójny w jednym stacku i nie potrzebuje migracji, albo gdy różne frameworki trafiają do projektu bez konkretnego uzasadnienia. "Bo Astro pozwala" nie jest kryterium architektonicznym.

Czy wyspy Astro mogą współdzielić stan między frameworkami?

Tak — przez zewnętrzny store (np. nanostores), custom events albo URL. Ale to nie jest naturalny model Astro. Przy dużym stanie aplikacyjnym jeden framework Application albo Next.js z RSC jest właściwą architekturą.

O autorze

Maciej Sala

Maciej Sala — Product Manager i Frontend Developer z bogatym doświadczeniem w marketingu internetowym oraz SEO. Na co dzień pracuje z Reactem, Next.js i TypeScriptem, a ostatnio także z Astro i narzędziami do automatyzacji procesów AI. Sprawnie łączy perspektywę produktową z praktycznym podejściem do kodu. Przez kilka lat był związany z branżą gier wideo jako project manager i game designer. Absolwent historii na Uniwersytecie Jagiellońskim oraz studiów podyplomowych z marketingu internetowego na AGH w Krakowie. Po godzinach trenuje na siłowni, maluje figurki i rozwijam własne projekty.

Pomagam przekładać takie tematy na konkretne wdrożenia w frontendzie, SEO, analityce i procesie produktowym.

Skontaktuj się ze mną

Biblioteka wiedzy na temat Astro

Czytaj dalej

Zobacz więcej wpisów
Zarządzanie starszymi architekturami: jak łączyć React, Svelte i Vue w jednym projekcie Astro

Są łatwiejsze, ale i trudniejsze migracje frontendu. Najtrudniejsza to taka, w której nie możemy przepisać wszystkiego od zera , ponieważ aplikacja działa na produkcji, generuje przychód i nie wolno jej zatrzymać. Jednorazowe przepisanie całego systemu w takiej sytuacji jest bardzo ryzykowne. W artykule piszę, jak architektura wysp w Astro pozwala Reactowi, Svelte i Vue współistnieć w jednym projekcie i jak wykorzystać to do stopniowej, bezpieczniejszej migracji.

Maciej Sala

Maciej Sala

Founder StriveLab

Architektura wysp w Astro — czym są wyspy i dlaczego zero JS domyślnie zmienia zasady gry

Zero JavaScript domyślnie brzmi jak jakaś reklama, ale dane jasno pokazują, że to architektoniczna decyzja, która daje do myślenia: Lighthouse powyżej 95, TBT bliski zera, Google dostaje czysty HTML od razu. Klasyczne aplikacje SPA wysyłają do przeglądarki cały framework, nawet jeśli większość strony to statyczna treść. W tym artykule rozkładam mechanizm wysp na części i pokazuję, kiedy daje realne korzyści, a kiedy nie.

Maciej Sala

Maciej Sala

Founder StriveLab

Astro vs Next.js w 2026: Porównanie frameworków

Astro czy Next.js? Wybór frameworka musi być dokładnie przemyślany, zanim pojawi się pierwszy commit. Jeśli stoisz przed takim właśnie wyborem, w tym artykule staram się wykazać, w jakich obszarach najlepiej sprawdza się Astro , a w jakich będzie dominował Next.js .

Maciej Sala

Maciej Sala

Founder StriveLab