Skip to content

Commit 96fd380

Browse files
committed
refactor(effect): ♻️ tweak arguments
1 parent 3be4e3c commit 96fd380

File tree

1 file changed

+14
-21
lines changed

1 file changed

+14
-21
lines changed

packages/reactivity/src/effect.ts

+14-21
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { TrackOpTypes, TriggerOpTypes } from './operations'
2-
import { extend, isArray, isIntegerKey, isMap } from '@vue/shared'
2+
import { extend, isArray, isIntegerKey, isMap, isSet } from '@vue/shared'
33
import { EffectScope, recordEffectScope } from './effectScope'
44
import {
55
createDep,
@@ -367,35 +367,28 @@ export function trigger(
367367
? { target, type, key, newValue, oldValue, oldTarget }
368368
: undefined
369369

370-
if (deps.length === 1) {
371-
if (deps[0]) {
372-
if (__DEV__) {
373-
triggerEffects(deps[0], eventInfo)
374-
} else {
375-
triggerEffects(deps[0])
376-
}
370+
const effects: ReactiveEffect[] = []
371+
for (const dep of deps) {
372+
if (dep) {
373+
effects.push(...dep)
377374
}
375+
}
376+
if (__DEV__) {
377+
triggerEffects(
378+
effects.length === 1 ? effects[0] : createDep(effects),
379+
eventInfo
380+
)
378381
} else {
379-
const effects: ReactiveEffect[] = []
380-
for (const dep of deps) {
381-
if (dep) {
382-
effects.push(...dep)
383-
}
384-
}
385-
if (__DEV__) {
386-
triggerEffects(createDep(effects), eventInfo)
387-
} else {
388-
triggerEffects(createDep(effects))
389-
}
382+
triggerEffects(effects.length === 1 ? effects[0] : createDep(effects))
390383
}
391384
}
392385

393386
export function triggerEffects(
394-
dep: Dep | ReactiveEffect[],
387+
dep: Dep | ReactiveEffect,
395388
debuggerEventExtraInfo?: DebuggerEventExtraInfo
396389
) {
397390
// spread into array for stabilization
398-
const effects = isArray(dep) ? dep : [...dep]
391+
const effects: ReactiveEffect[] = isSet(dep) ? [...dep] : [dep]
399392
for (const effect of effects) {
400393
if (effect.computed) {
401394
triggerEffect(effect, debuggerEventExtraInfo)

0 commit comments

Comments
 (0)