Svelte
Installation
SKILL.md
Reactivity Triggers
- Assignment triggers reactivity —
arr = arrafter push, or usearr = [...arr, item] - Array methods don't trigger —
arr.push()needs reassignment:arr = arr - Object mutation same issue —
obj.key = val; obj = objor spread:obj = {...obj, key: val} $:reactive statements run on dependency change — but only top-level assignments tracked
Reactive Statements
$:runs when dependencies change — list all dependencies used$: { }block for multiple statements — all run together$:order matters — later statements can depend on earlier- Avoid side effects in
$:— prefer derived values, useonMountfor effects
Stores
$storeauto-subscribes in component — automatic unsubscribe on destroy- Manual subscribe needs unsubscribe —
const unsub = store.subscribe(v => ...); onDestroy(unsub) writablefor read/write —readablefor external data sourcesderivedfor computed values —derived(store, $s => $s * 2)