signal Effects uses

signal-effects-uses

let _effectFn = null;
function signal(val) {
const effectFns = [];
return {
get value() {
effectFns.push(_effectFn);
return val;
},
set value(_val) {
val = _val;
for (const effectFn of effectFns) {
effectFn();
}
}
}
}

function effect(effectFn) {
_effectFn = effectFn;
effectFn();
_effectFn = null;
}

function computed(compFn) {
const newSignal = signal();
effect(() => {
const val = compFn();
newSignal.value = val;
})
return newSignal;
}

const data = signal(0);

const computedData = computed(() => data.value * 2);

effect(() => {
console.log(‘Effect Fn: ‘, computedData.value);
});

data.value = 89;

data.value = 79;

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post
rethinking-product-marketing’s-role-in-the-new-saas-era

Rethinking product marketing’s role in the new SaaS era

Next Post
mcdonald’s-secret-ingredients-to-fan-driven-marketing

McDonald’s Secret Ingredients to Fan-Driven Marketing

Related Posts