MCPcopy
hub / github.com/vuejs/core / effect

Function effect

packages/reactivity/src/effect.ts:484–505  ·  packages/reactivity/src/effect.ts::effect
(
  fn: () => T,
  options?: ReactiveEffectOptions,
)

Source from the content-addressed store, hash-verified

482}
483
484export function effect<T = any>(
485 fn: () => T,
486 options?: ReactiveEffectOptions,
487): ReactiveEffectRunner<T> {
488 if ((fn as ReactiveEffectRunner).effect instanceof ReactiveEffect) {
489 fn = (fn as ReactiveEffectRunner).effect.fn
490 }
491
492 const e = new ReactiveEffect(fn)
493 if (options) {
494 extend(e, options)
495 }
496 try {
497 e.run()
498 } catch (err) {
499 e.stop()
500 throw err
501 }
502 const runner = e.run.bind(e) as ReactiveEffectRunner
503 runner.effect = e
504 return runner
505}
506
507/**
508 * Stops the effect associated with the given runner.

Callers 15

computed.spec.tsFile · 0.90
reactive.spec.tsFile · 0.90
readonly.spec.tsFile · 0.90
WeakSet.spec.tsFile · 0.90
Map.spec.tsFile · 0.90
Set.spec.tsFile · 0.90
WeakMap.spec.tsFile · 0.90
global.spec.tsFile · 0.90
setupFunction · 0.90

Calls 2

runMethod · 0.95
stopMethod · 0.95

Tested by 2

setupFunction · 0.72
assertTriggerRefFunction · 0.68