Komponenten ·
Reaktivität ·
Props ·
Bindings ·
Stores ·
Lifecycle
Svelte ist ein modernes UI-Framework, das zur Compile-Zeit arbeitet – im Gegensatz zu anderen Frameworks wird kein virtuelles DOM verwendet. Diese Cheatsheet fasst die grundlegenden Konzepte zusammen.
Svelte-Komponenten sind Svelte-Dateien (.svelte), die HTML, CSS und JavaScript in einer Datei vereinen. Jede Datei definiert eine Komponente.
<style> ist automatisch komponenten-scoped – es wird nur auf die aktuelle Komponente angewendet. Verwenden Sie :global() für globale Styles.
Reaktivität ist das Herz von Svelte. Wenn sich eine Variable ändert, werden alle abhängigen Ausdrücke und das DOM automatisch aktualisiert. Die $:-Syntax markiert reaktive Anweisungen.
<script>-Block deklariert werden, sind automatisch reaktiv. Verwenden Sie $: für abgeleitete Werte und Seiteneffekte.
Props werden mit export let in der Child-Komponente deklariert und beim Einbinden über Attribute übergeben.
$$restProps für die Weitergabe von Attributen an untergeordnete Elemente (ähnlich wie {...props} in React).
Bindings ermöglichen eine bidirektionale Datenbindung zwischen DOM-Elementen und Variablen – ähnlich wie v-model in Vue oder ngModel in Angular.
bind:this gibt Ihnen eine direkte Referenz auf das DOM-Element – nützlich für imperative Operationen wie Fokus oder Animationen.
Stores sind der eingebaute Zustandsmanager von Svelte. Sie ermöglichen die gemeinsame Nutzung von reaktiven Daten über mehrere Komponenten hinweg. Mit dem $-Präfix wird automatisch auf den aktuellen Wert zugegriffen.
$-Präfix ist ein syntaktischer Zucker – es macht den Store-Wert reaktiv. Sie können auch store.subscribe() manuell verwenden.
Lifecycle-Funktionen ermöglichen es Ihnen, Code zu bestimmten Zeitpunkten im Lebenszyklus einer Komponente auszuführen – beim Mounten, Aktualisieren oder Zerstören.
onMount wird nur im Browser ausgeführt – ideal für API-Aufrufe oder DOM-Manipulationen. Die Cleanup-Funktion wird beim Zerstören der Komponente aufgerufen (z.B. für Event-Listener).
.svelte
$:
export let
bind:
$store
onMount
$: doubled = count * 2 ·
<input bind:value={name} /> ·
export let name