
Svelte 5 Has Free Runes That Replace Reactivity — $state, $derived, $effect Are the New Signals
The Svelte 4 Problem Svelte 4's reactivity was implicit. let count = 0 was reactive. $: doubled = count * 2 was derived. Magic. But when things got complex, the magic broke. Svelte 5 Runes make reactivity explicit. $state() , $derived() , $effect() — clear, composable, debuggable. What Svelte 5 Gives You $state — Reactive State <script> let count = $state ( 0 ); </script> <button onclick= { () => count ++ } > Count: { count } </button> $derived — Computed Values <script> let width = $state ( 10 ); let height = $state ( 20 ); let area = $derived ( width * height ); </script> <p> Area: { area } </p> No dependency arrays. Svelte tracks what area depends on automatically. $effect — Side Effects <script> let query = $state ( '' ); $effect (() => { // Runs when query changes const results = searchAPI ( query ); console . log ( ' Search results: ' , results ); }); </script> $props — Component Props <script> let { name , age = 25 } = $props (); </script> <p> { name } is { age } years old </p>
Continue reading on Dev.to Webdev
Opens in a new tab

