Show HN: MobX-Style Observables in Svelte
github.comI love Mobx with React and also Svelte, but Svelte already has reactive and derived values? https://svelte.dev/tutorial/reactive-statements
Not clear what this solves or improves upon.
Reactivity, yes - works the same as MobX's autorun. But not derived values. You can ensure something gets updated by wrapping it in $:
``` $: value = $x + 2 ```
but you can do that somewhere else as well
``` $: { let y = 20 $value += y } ```
Makes it insanely hard to track where changes come from. You can't say "this value is _only_ updated by these changes".
You can do this with derived stores, though. But each store must be it's own, separate value - with MobX's observable you have a central object representing your entire state, each of which is made automatically reactive, and putting in a derived store is just prepending with -get-. It's much cleaner.
What's the point of this when Svelte already provides reactive primitives?
Hey. See my answer to the same question below.