Skip to content

@gluonjs/core / packages/reactivity/src / EffectScope

Class: EffectScope ​

Constructors ​

Constructor ​

new EffectScope(options?): EffectScope

Parameters ​

options? ​

EffectScopeOptions = {}

Returns ​

EffectScope

Properties ​

onError ​

readonly onError: 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:

ts
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();

Version-matched documentation. Examples are checked against the public package contracts.