mizchi/luna/js/resource does not have a README file
fn[T] batch(f : () -> T) -> Tfn[T] computed(compute : () -> T) -> (() -> T)fn[T] create_root(f : (() -> Unit) -> T) -> Tfn[T] create_root_with_dispose(f : () -> T) -> (T, () -> Unit)fn effect(fn_ : () -> Unit) -> (() -> Unit)fn effect_once(fn_ : () -> Unit) -> Unitfn effect_when(condition : () -> Bool, fn_ : () -> Unit) -> (() -> Unit)fn[T] memo(compute : () -> T) -> (() -> T)test "memo_eq stops an effect that memo would wake" {
let n = @resource.signal(0)
// A fresh String every time, but the same text until `n` reaches 100.
let label = @resource.memo_eq(() => "page \{n.get() / 100}")
let runs = Ref(0)
let _ = @resource.render_effect(() => {
let _ = label()
runs.val 1
})
for i in 1...=5 {
n.set(i)
}
// Five source changes, one effect run: the label never moved.
inspect(runs.val, content="1")
inspect(label(), content="page 0")
}fn on_cleanup(cleanup : () -> Unit) -> Unitfn on_mount(fn_ : () -> Unit) -> Unitfn register_disposer(disposer : () -> Unit) -> Unitfn register_owner_cleanup(cleanup : () -> Unit) -> Unitfn render_effect(fn_ : () -> Unit) -> (() -> Unit)fn[T] untracked(f : () -> T) -> TInstall
Download zipFine-grained reactive UI library for Moonbit/JS
Dependencies