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)