@gluonjs/reactivity / packages/reactivity/src / EffectOptions
Interface: EffectOptions
Properties
flush?
readonlyoptionalflush?:EffectFlush
id?
readonlyoptionalid?:number
lazy?
readonlyoptionallazy?:boolean
onError?
readonlyoptionalonError?:ReactivityErrorHandler
onSchedule?
readonlyoptionalonSchedule?: () =>void
Returns
void
onStop?
readonlyoptionalonStop?: () =>void
Returns
void
onTrack?
readonlyoptionalonTrack?: (event) =>void
Parameters
event
Returns
void
onTrigger?
readonlyoptionalonTrigger?: (event) =>void
Parameters
event
Returns
void
Example
Configure effect scheduling, stop behavior, error handling, and development dependency-debug callbacks:
import {
batch,
effect,
nextTick,
ref,
stop,
untracked,
type EffectDebuggerEvent,
type EffectOptions,
type ReactiveEffectRunner,
type TrackOperation,
type TriggerOperation,
} from '@gluonjs/reactivity';
const count = ref(0);
const debugEvents: EffectDebuggerEvent[] = [];
const options: EffectOptions = {
onTrack: (event) => debugEvents.push(event),
onTrigger: (event) => debugEvents.push(event),
};
const runner: ReactiveEffectRunner<number> = effect(() => count.value, options);
batch(() => { count.value += 1; count.value += 1; });
const snapshot = untracked(() => count.value);
await nextTick();
stop(runner);
const track: TrackOperation = 'get';
const trigger: TriggerOperation = 'set';
console.log(snapshot, debugEvents.length, track, trigger);