@preact/signals or usignal show best in class performance and are recommended instead.
Value reference with reactivity.
Creates reactive mutable ref object with .value property holding internal value.
Exposes minimal Observable and AsyncIterable interfaces.
Create reactive ref object mapped from passed reactive sources / observables.
import v from './value-ref.js'
let count = v(0)
count.value // 0
const { unsubscribe } = count.subscribe(value => {
console.log(value)
return () => console.log('teardown', value)
})
count.value = 1
// > 1
count.value = 2
// > "teardown" 1
// > 2
unsubscribe()
// create mapped ref
let double = v.from(count, value => value * 2)
double.value // 4
count.value = 3
double.value // 6
// create from multiple refs
let sum = v.from(count, double, (count, double) => count + double)
// async iterable
for await (const value of sum) console.log(value)
// dispose refs (automatically unsubscribes on garbage collection)
count = double = sum = nullNote: manual dispose is available as ref[Symbol.dispose], but unnecessary - FinalizationRegistry unsubscribes automatically if reference is lost.
- templize − template parts with reactive fields support.
- hyperf − dom fragments builder with reactive fields support.
- sube − subscribe to any reactive source.
- subscribable-things − collection of observables for different browser APIs - perfect match with spect.
observable-value, knockout/observable, mobx/observable, rxjs, vue3/ref, observable, observable proposal, observ, mutant, iron, icaro, introspected, ulive, trkl, emnudge/trkl, usignal, preact/signals, cellx.
ॐ