Svelte state sharing? Just use classes. They're fine.
Who here remembers Stores from Svelte 4?
// counter.ts
import { writable } from 'svelte/store';
export const count = writable(0);
In Svelte 5, Stores are out and Runes are in. Universal reactivity baby!
// counter.svelte.ts
export const count = $state({ value: 0 });
The problem is there are too many different ways to share state across modules.
Basically, after extensive experimentation, I'd suggest ... just use classes.
They're fine, flexible, fun!
// counter.svelte.ts
class Counter {
value = $state(0);
doubled = $derived(this.value * 2);
}
export const counter = new Counter();
That's it! That's my recommendation.
Maybe I'll expand on reasoning etc later, when I have more time.
Peace out ✌️
Would you like to know more?