Svelte is a radical new approach to building user interfaces. […]
Instead of using techniques like virtual DOM diffing, Svelte writes code that surgically updates the DOM when the state of your app changes.
von svelte.dev
Component.svelte:
<script lang="ts">
// JavaScript oder TypeScript Code der Komponente
</script>
<style>
/* lokale Styles (werden vom Compiler in
Namespace verpackt) */
</style>
<!-- HTML Fragment -->
<div>[…]</div>
<p>[…]</p>
[…]
<React.Fragment />
<svelte:..>
-Elemente zur Steuerung spezieller Features
(Fenster-Titel etc.){#if…}
), Schleifen ({#each…}
),
Promises ({await…}
) etc.on:event
) & Data-Binding
(bind:…
) etc.<style>
-Blocksvelte-preprocess
)global(…)
User.svelte:
<script lang="ts">
export let title: string;
export let name: { first: string, last: string };
</script>
Hello {title} {first} {last}!
UserComponent.svelte:
<script lang="ts">
import User from './User.svelte';
</script>
<User title="His Highness" name={{first: "John", last: "Doe"}} />
<script lang="ts">
let clicked: boolean = false;
$: buttonTitle = clicked ? "Click me!" : "Yeah!";
</script>
<button on:click={() => {clicked = true;}>
{buttonTitle}
</button>
$:
-Präfix werden bei jeder Änderung verwendeter Variablen ausgeführt (vgl. React.useEffect()
)on:eventname
on:event|modifier
const dispatch = createEventDispatcher();
[…]
dispatch("myEvent", {some: "additional", data: 10});
<MyComponent on:myEvent={ev = console.log(ev.details)} /> ;
<form on:submit|preventDefault={submitHandler} />