Rune di Svelte 5 a confronto con Svelte 4

Rune di Svelte 5

Rune di Svelte 5: $state, $derived, $effect, $props | We.Inc

Ogni rune di Svelte 5 con il codice Svelte 4 che sostituisce: $state, $derived, $effect, $props e $bindable, più la nuova sintassi per eventi e snippet. Esempi pronti da copiare.

Le rune sono le parole chiave del compilatore che Svelte 5 usa per la reattività. $state dichiara una variabile reattiva, $derived calcola un valore a partire da altro stato, $effect esegue codice dopo l'aggiornamento della pagina, $props legge le prop del componente e $bindable indica una prop a cui un genitore può fare bind. Sostituiscono il let reattivo, l'etichetta $: ed export let di Svelte 4.

La sintassi di Svelte 4 e la rune che la sostituisce

Scegli una rune per vedere un componente Svelte 4 e la sua riscrittura in Svelte 5. Ogni coppia si comporta allo stesso modo, quindi puoi migrare un file alla volta e controllare il risultato man mano.

Domande frequenti

Devo riscrivere tutta la mia app per Svelte 5?

No. Svelte 5 supporta ancora la sintassi di Svelte 4, e i componenti vecchio stile e quelli basati sulle rune possono convivere nella stessa app e usarsi a vicenda, quindi puoi convertire i file uno per uno.

Perché il mio $effect non si riesegue?

Svelte traccia solo lo stato letto in modo sincrono dentro l'effetto. Un valore letto dopo un await o dentro una callback di setTimeout non è una dipendenza, quindi cambiarlo non ha effetto.

Posso modificare un valore $derived?

Da Svelte 5.25 puoi riassegnare temporaneamente un valore derivato, utile per gli aggiornamenti ottimistici, a meno che non sia dichiarato con const. Viene ricalcolato quando cambiano le sue dipendenze. Le versioni precedenti trattano i derivati come di sola lettura.

Cosa ha sostituito createEventDispatcher?

Le prop di callback. Il figlio riceve una funzione come onsave tramite $props e la chiama, e il genitore passa il gestore come qualsiasi altro attributo.

Come do un id univoco a un campo di un modulo?

Chiama $props.id(), aggiunto in Svelte 5.20. Restituisce un id univoco per l'istanza del componente che coincide tra server e browser, quindi è sicuro per for e aria-labelledby.

$state è profondo per impostazione predefinita

$derived deve restare puro

Tempistica e cleanup di $effect

Condividere stato tra componenti

Uno store reattivo in un file .svelte.js

Una variabile $state riassegnata non può essere esportata direttamente, quindi esporta un oggetto e modifica le sue proprietà.

$state

Un let semplice non è più reattivo in modalità rune. Avvolgi il valore iniziale in $state e aggiornalo come qualsiasi variabile.

$derived

L'etichetta $: faceva due lavori. I calcoli diventano $derived; Svelte li ricalcola quando count cambia.

$effect

Gli effetti collaterali di $: passano in $effect. Viene eseguito nel browser dopo l'aggiornamento del DOM, e il suo valore di ritorno è il cleanup.

$props

Tutte le prop arrivano tramite un'unica destrutturazione. Valori predefiniti, rinomine e rest prop usano la normale sintassi JavaScript.

$bindable

Segna una prop con $bindable così un genitore può usare bind: su di essa. Il codice del genitore resta lo stesso.

Eventi

on:click diventa l'attributo onclick, e gli eventi personalizzati diventano prop di callback invece di createEventDispatcher.

Snippet

Lo snippet children sostituisce lo slot predefinito, e {@render} lo posiziona. Il ?. salta il rendering quando non sono stati passati children.

Codice Svelte 4 e la sua riscrittura in Svelte 5

Scegli una rune

Svelte 4

Svelte 5 con le rune

Copia Svelte 4

Copia Svelte 5

Esempio {n} di {v}

Inizia gratis · Nessuna carta di credito richiesta

Correlati: Guide

Prodotto

Per chi è

Funzionalità

Risorse

Azienda

Mappa del sito