Componenti
Componente base

Hello {name}!

Struttura del componente
<script>Logica del componente (JS/TS)
MarkupTemplate HTML con {espressioni}
<style>CSS con scope (auto-applicato al componente)
<script context="module">Eseguito una volta per modulo, non per istanza
Reattività
Assegnazioni reattive
Dichiarazioni reattive

$: contrassegna le dichiarazioni e le istruzioni reattive

Regole di reattività
L'assegnazione attiva l'aggiornamentocount += 1 scatena un aggiornamento; anche obj.x = 1
Mutazione di arrayUsare arr = [...arr, item] (riassegnare per attivare)
Dichiarazione $:Si ricalcola automaticamente quando le variabili dipendenti cambiano
Istruzione $:Esegue effetti collaterali in modo reattivo
Props
Dichiarazione e passaggio di props

{greeting}, {name}!

Props con spread
Eventi
Eventi DOM
value = e.target.value} />
Modificatori di eventi
preventDefaultChiama e.preventDefault()
stopPropagationInterrompe il bubbling dell'evento
onceIl gestore si attiva solo una volta
selfSolo se event.target è l'elemento
captureUsa la fase di cattura
Eventi dei componenti
Binding
Binding bidirezionale
Binding di elementi e componenti
Tipi di binding
bind:valueValore di input/select/textarea
bind:checkedStato della casella di controllo
bind:groupGruppo radio/checkbox
bind:thisRiferimento all'elemento DOM
bind:clientWidth/HeightDimensioni dell'elemento (sola lettura)
Store
Store scrivibile
// store.js import { writable } from "svelte/store"; export const count = writable(0); // Component — auto-subscribe with $
Metodi dello store
count.set(10); // set value count.update(n => n + 1); // update from current const unsub = count.subscribe(v => console.log(v));
Tipi di store
writable(val)Store leggibile e scrivibile
readable(val, fn)Sola lettura, impostato dalla funzione start
derived(stores, fn)Calcolato da altri store
$storeSintassi di sottoscrizione automatica nei componenti
Transizioni
Transizioni integrate
{#if visible}
Fades in/out
Fly in, fade out
{/if}
Opzioni di transizione
fadeOpacità da 0 a 1
flyAnima offset x/y + opacità
slideScivola dentro/fuori (altezza)
scaleScala e dissolvenza
drawAnimazione del tratto SVG
durationDurata della transizione in ms
delayRitardo prima dell'avvio
Slot
Slot predefiniti e con nome
Default header Default content

Title

Body content goes here

Props degli slot
{#each items as item} {/each}

{index}: {item.name}

Contesto
Impostazione e lettura del contesto
Contesto vs Store
ContestoLimitato all'albero dei componenti, non reattivo per default
StoreGlobale, reattivo, importabile ovunque
Contesto + StorePassa uno store via contesto per reattività con scope
SvelteKit Nozioni di base
Routing basato su file
src/routes/ +page.svelte about/+page.svelte blog/[slug]/+page.svelte
Funzioni load
// +page.js (runs on client & server) export async function load({ params, fetch }) { const res = await fetch(`/api/posts/${params.slug}`); return { post: await res.json() }; }
File chiave
+page.svelteComponente pagina
+page.js / +page.tsFunzione load client/universale
+page.server.jsLoad solo server / azioni form
+layout.svelteLayout condiviso
+error.sveltePagina di errore
+server.jsEndpoint API (GET, POST, ...)