Reactive Core

Signals#

TC39-aligned, glitch-free diamond propagation, custom equality

Computed#

lazy, cached, version-tracked

Effects#

auto-tracking, auto-cleanup via scopes, optional cleanup callback (return () => …)

untrack()#

read signals without subscribing

linked()#

writable derived that resets when its source changes; persisted() — a signal in localStorage/sessionStorage with cross-tab sync; selector() — O(2) updates for "selected row"; until() — await a signal (until(ready), until(n).toBe(3), { timeout })

provide() / inject()#

context down the scope chain and across islands via DOM ancestors

watch()#

onCleanup, { once }, pause() / resume(); computed((prev) => …, { initial })

Batch#

group updates, single flush

Reactive objects#

deep Proxy-based reactivity (like Vue reactive()), arrays included: push/splice/sort, index writes, length, key add/delete

Store#

definition-based reactive container (properties → signals, getters → computeds, methods → actions, auto-batched)