|
1 | 1 | import { TrackOpTypes, TriggerOpTypes } from './operations'
|
2 |
| -import { extend, isArray, isIntegerKey, isMap } from '@vue/shared' |
| 2 | +import { extend, isArray, isIntegerKey, isMap, isSet } from '@vue/shared' |
3 | 3 | import { EffectScope, recordEffectScope } from './effectScope'
|
4 | 4 | import {
|
5 | 5 | createDep,
|
@@ -367,35 +367,28 @@ export function trigger(
|
367 | 367 | ? { target, type, key, newValue, oldValue, oldTarget }
|
368 | 368 | : undefined
|
369 | 369 |
|
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) |
377 | 374 | }
|
| 375 | + } |
| 376 | + if (__DEV__) { |
| 377 | + triggerEffects( |
| 378 | + effects.length === 1 ? effects[0] : createDep(effects), |
| 379 | + eventInfo |
| 380 | + ) |
378 | 381 | } 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)) |
390 | 383 | }
|
391 | 384 | }
|
392 | 385 |
|
393 | 386 | export function triggerEffects(
|
394 |
| - dep: Dep | ReactiveEffect[], |
| 387 | + dep: Dep | ReactiveEffect, |
395 | 388 | debuggerEventExtraInfo?: DebuggerEventExtraInfo
|
396 | 389 | ) {
|
397 | 390 | // spread into array for stabilization
|
398 |
| - const effects = isArray(dep) ? dep : [...dep] |
| 391 | + const effects: ReactiveEffect[] = isSet(dep) ? [...dep] : [dep] |
399 | 392 | for (const effect of effects) {
|
400 | 393 | if (effect.computed) {
|
401 | 394 | triggerEffect(effect, debuggerEventExtraInfo)
|
|
0 commit comments