1.0.2 • Published 9 days ago
ulive v1.0.2
ULive
yarn: yarn add ulive
npm: npm i ulive
cdn: https://esm.sh/ulive
module: https://esm.sh/ulive?module
- Small. 280 bytes gzip.
- Fast.
- Simple API
- Reactive. Automatic derivation.
- Value Ref Syntax
- Circular Detection
API
signal(val)
Create a reactive or live state.
import { signal, computed, memo, effect } from "ulive";
const num = signal(0);
num.value = 10;
console.log(num.value);
effect(fn)
Run fn with automatic dependency check & cleanup return.
let num = signal(0);
effect(() => console.log(num.value));
computed(fn)
Returns computed value
let num = signal(0);
let square = computed(() => num.value * num.value);
let cube = computed(() => square.value * num.value);
effect(() => console.log(num.value, square.value, cube.value));
toJSON or then or valueOf
const counter = signal(0);
const effectCount = signal(0);
effect(() => {
console.log(counter.value);
// Whenever this effect is triggered, increase `effectCount`.
// But we don't want this signal to react to `effectCount`
effectCount.value = effectCount.valueOf() + 1;
});
Usage
const num = signal(1);
let square = computed(() => num.value * num.value);
let cube = computed(() => square.value * num.value);
effect(() => console.log(num.value, square.value, cube.value));
num.value = 1;
num.value = 2;
num.value = 3;
Thanks and Inspiration
License
MIT
1.0.2
9 days ago
1.0.1
2 months ago
1.0.0
2 months ago
0.6.1
2 months ago
0.5.0
1 year ago
0.5.1
1 year ago
0.4.1
2 years ago
0.4.0
2 years ago
0.4.2
2 years ago
0.3.1
2 years ago
0.3.0
2 years ago
0.2.0
2 years ago
0.1.2
2 years ago
0.0.12
2 years ago
0.0.11
2 years ago
0.0.10
2 years ago
0.0.9
2 years ago
0.0.8
2 years ago
0.0.6
2 years ago
0.0.5
2 years ago
0.0.4
2 years ago
0.0.3
2 years ago
0.0.2
2 years ago
0.0.1
2 years ago