.astro ·
Frontmatter ·
Props ·
Slots ·
Scripts & Styles ·
Frameworks
Astro-Komponenten sind das Herzstück jeder Astro-Anwendung. Sie kombinieren serverseitigen Code, HTML-Templates und komponentenspezifische Styles in einer einzigen Datei.
.astro-Dateien bestehen aus einem Frontmatter (Code-Block) und einem HTML-Template. Der Frontmatter-Code wird serverseitig ausgeführt und nie an den Client gesendet.
Props werden über Astro.props in der Komponente empfangen. Typdefinitionen mit TypeScript sorgen für Typsicherheit.
Slots ermöglichen es, Inhalte von der übergeordneten Komponente in die untergeordnete Komponente zu übergeben. Benannte Slots erlauben mehrere Inhaltsbereiche.
<slot />) wird verwendet, wenn kein benannter Slot angegeben ist. Benannte Slots erlauben mehrere Inhaltsbereiche in einer Komponente.
Scripts und Styles in Astro-Komponenten werden standardmäßig serverseitig verarbeitet. Mit <script> können Sie client-seitiges JavaScript hinzufügen, mit define:vars CSS-Variablen aus dem Frontmatter übergeben.
define:vars für dynamische Styles, die von Frontmatter-Variablen abhängen. Das erzeugt automatisch CSS-Custom-Properties, die im Template verwendet werden können.
Framework-Komponenten ermöglichen die Nutzung von React, Vue, Svelte und anderen Frameworks in Astro. Die entsprechende Integration muss zuerst installiert werden.
client:*-Direktiven interaktives JavaScript. Das reduziert die Bundle-Größe erheblich.
.astro
Astro.props
<slot />
<script>
<style>
client:load
const { title } = Astro.props; ·
<slot name="header" /> ·
<Counter client:load />