En Svelte 5, $state est profondément réactif : chaque propriété d’un objet devient une source de réactivité. Modifier une sous-propriété met à jour l’interface sans ré-assigner la variable.
- $state({ … }) rend toutes les propriétés observables, y compris imbriquées.
- Ajouter une clé dynamiquement la rend réactive au premier accès.
- Seuls les composants qui lisent la propriété touchée sont re-rendus.
src/lib/Profil.sveltesvelte
<script>
let profil = $state({ nom: 'Ada', email: '' })
</script>
<input bind:value={profil.nom} placeholder='Nom' />
<input bind:value={profil.email} placeholder='Email' />
<p>{profil.nom} — {profil.email || 'email manquant'}</p>