@gluonjs/reactivity / packages/reactivity/src / EffectScope
Class: EffectScope
Constructors
Constructor
new EffectScope(
options?):EffectScope
Parameters
options?
EffectScopeOptions = {}
Returns
EffectScope
Properties
onError
readonlyonError:ReactivityErrorHandler|undefined
Accessors
active
Get Signature
get active():
boolean
Returns
boolean
Methods
run()
run<
T>(callback):T|undefined
Type Parameters
T
T
Parameters
callback
() => T
Returns
T | undefined
stop()
stop():
void
Returns
void
Example
Own a related group of effects, child scopes, and cleanup callbacks so one stop() releases the entire reactive feature:
import {
EffectScope,
effect,
effectScope,
getCurrentScope,
onScopeDispose,
ref,
type EffectScopeOptions,
} from '@gluonjs/reactivity';
const options: EffectScopeOptions = {
detached: true,
onError: ({ error }) => console.error(error),
};
const scope: EffectScope = effectScope(options);
const count = ref(0);
scope.run(() => {
console.log(getCurrentScope() === scope);
effect(() => console.log(count.value));
onScopeDispose(() => console.log('scope disposed'));
});
count.value = 1;
scope.stop();