Astro-Komponenten ·
Inseln-Architektur ·
Rendering-Modi ·
Layouts ·
Content Collections ·
Integrationen
Astro ist ein modernes Web-Framework für inhaltsorientierte Websites. Es kombiniert statische Site-Generierung mit der "Inseln"-Architektur für interaktive Komponenten und liefert nur das notwendige JavaScript.
Astro-Komponenten sind .astro-Dateien mit einem Frontmatter (Code-Block) und einem HTML-Template. Sie ähneln JSX, laufen aber serverseitig und rendern zu statischem HTML.
---) wird serverseitig ausgeführt und nie an den Client gesendet. Das macht Astro-Komponenten sehr schnell und sicher.
Inseln sind interaktive Komponenten, die nur dann JavaScript laden, wenn sie benötigt werden. Das reduziert die Bundle-Größe drastisch und verbessert die Performance.
| Direktive | Beschreibung |
|---|---|
| client:load | Wird sofort geladen (beim Seitenaufbau) |
| client:idle | Wird geladen, wenn der Browser idle ist (nach Hauptinhalten) |
| client:visible | Wird geladen, wenn die Komponente sichtbar wird (Intersection Observer) |
| client:media | Wird geladen, wenn eine Media-Query zutrifft |
| client:only | Nur client-seitig rendern (kein SSR) |
client:load nur für kritische interaktive Elemente und client:idle oder client:visible für alle anderen.
Astro unterstützt verschiedene Rendering-Modi: statische Site-Generierung (SSG), serverseitiges Rendering (SSR) und Hybrid-Modus. prerender steuert das Verhalten pro Seite.
| Modus | Beschreibung | output |
|---|---|---|
| Static (SSG) | Alle Seiten werden zur Build-Zeit generiert | static |
| Server (SSR) | Alle Seiten werden dynamisch serverseitig gerendert | server |
| Hybrid | Einige Seiten statisch, andere dynamisch | hybrid |
output: 'static' die beste Wahl – die Seiten werden einmalig gebaut und sind extrem schnell.
Layouts in Astro sind Komponenten, die das Grundgerüst einer Seite definieren. Sie können Slots für dynamische Inhalte verwenden.
<slot name="..." /> können Sie mehrere Inhaltsbereiche in einem Layout definieren – z.B. für Sidebar oder Footer.
Content Collections ermöglichen die strukturierte Verwaltung von Inhalten (Blogposts, Dokumentation, Produkte) mit Typensicherheit und automatischer Inhaltsverzeichnis-Generierung.
Integrationen erweitern Astro um Unterstützung für andere Frameworks, CSS-Tools, Sitemaps, Bildoptimierung und mehr.
| Integration | Beschreibung |
|---|---|
| @astrojs/react | React-Komponenten in Astro verwenden |
| @astrojs/vue | Vue-Komponenten in Astro verwenden |
| @astrojs/svelte | Svelte-Komponenten in Astro verwenden |
| @astrojs/tailwind | Tailwind CSS-Unterstützung |
| @astrojs/sitemap | Automatische Sitemap-Generierung |
| @astrojs/mdx | MDX-Unterstützung (Markdown + JSX) |
| @astrojs/partytown | Partytown für Drittanbieter-Skripte |
| @astrojs/image | Bildoptimierung (veraltet, siehe astro:assets) |
.astro
client:load
output
<slot />
collections
@astrojs/*
const { title } = Astro.props; ·
<Counter client:load /> ·
export const prerender = true