S SvelteKurs
M0 · Einstieg

Was ist Svelte & SvelteKit?

Ein Compiler statt eines Laufzeit-Frameworks — und warum das für dich als Rails-Entwickler angenehm vertraut ist.

Svelte ist ein Compiler

Die meisten Frontend-Frameworks (React, Vue) sind Laufzeit-Bibliotheken: Der Browser lädt das Framework und dieses sorgt zur Laufzeit dafür, dass die Oberfläche mit deinen Daten synchron bleibt (Stichwort „Virtual DOM").

Svelte geht einen anderen Weg. Es ist ein Compiler: Zur Build-Zeit verwandelt Svelte deine Komponenten in kleines, gezieltes JavaScript, das genau die DOM-Knoten aktualisiert, die sich wirklich ändern. Es gibt kein Framework, das mitgeliefert wird — nur deinen kompilierten Code.

💡 Warum dir das gefällt

Weniger Boilerplate, kleinere Bundles und Code, der sich fast wie normales HTML/JS liest. Du schreibst was reaktiv sein soll, nicht wie die Aktualisierung passiert.

Der Unterschied in Code

In React sagst du dem Framework über useState/setState explizit, wann etwas neu gerendert wird:

React js
// React: du beschreibst, WANN neu gerendert wird
function Zaehler() {
  const [count, setCount] = useState(0);
  // setCount triggert ein Re-Render der ganzen Funktion
  return <button onClick={() => setCount(count + 1)}>{count}</button>;
}

In Svelte 5 markierst du mit der $state-Rune einfach eine Variable als reaktiv — und änderst sie wie eine ganz normale Variable:

Svelte svelte
<script>
  // Svelte: du beschreibst, WAS reaktiv ist — den Rest macht der Compiler
  let count = $state(0);
</script>

<button onclick={() => count++}>{count}</button>

🛤️ Rails-Vergleich: reaktiv vs. Request/Response

In Rails rendert der Server die View einmal und ist dann fertig — für jede Änderung braucht es einen neuen Request (oder Hotwire/Turbo). Svelte hält die Oberfläche im Browser automatisch mit deinem Zustand synchron, ohne Reload.

Rails: einmaliges Rendering ruby
# Rails rendert einmal auf dem Server:
class ZaehlerController < ApplicationController
  def show
    @count = 0   # danach ist Schluss — für "+1" braucht es einen neuen Request
  end
end

Svelte vs. SvelteKit

Zwei Begriffe, die zusammengehören, aber Unterschiedliches meinen:

  • Svelte ist die Sprache/Komponenten-Ebene — vergleichbar mit ERB + Stimulus: Wie sieht eine Komponente aus, wie ist sie reaktiv?
  • SvelteKit ist das Anwendungs-Framework drumherum — vergleichbar mit Rails selbst: Routing, Server-Rendering, Datenladen, Formulare, API-Endpunkte, Build & Deployment.

ℹ️ Fahrplan dieses Kurses

Die Module M1–M7 behandeln Svelte (die Sprache & Reaktivität). Ab M8 kommt SvelteKit dazu (Routing, Daten, Deployment) — inklusive einer echten CRUD-App „DevNotes" mit Postgres.