From 9c1352b21857bee0d5abe44f7365fb6b9fa487f0 Mon Sep 17 00:00:00 2001 From: Liberty Date: Thu, 10 Aug 2023 08:06:51 +0800 Subject: [PATCH 1/2] refactor(effect): :recycle: tweak arguments --- packages/reactivity/src/effect.ts | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/packages/reactivity/src/effect.ts b/packages/reactivity/src/effect.ts index d4a34edfef4..5435392c2bc 100644 --- a/packages/reactivity/src/effect.ts +++ b/packages/reactivity/src/effect.ts @@ -367,26 +367,19 @@ export function trigger( ? { target, type, key, newValue, oldValue, oldTarget } : undefined - if (deps.length === 1) { - if (deps[0]) { - if (__DEV__) { - triggerEffects(deps[0], eventInfo) - } else { - triggerEffects(deps[0]) - } + const effects: ReactiveEffect[] = [] + for (const dep of deps) { + if (dep) { + effects.push(...dep) } + } + if (__DEV__) { + triggerEffects( + effects.length === 1 ? effects : createDep(effects), + eventInfo + ) } else { - const effects: ReactiveEffect[] = [] - for (const dep of deps) { - if (dep) { - effects.push(...dep) - } - } - if (__DEV__) { - triggerEffects(createDep(effects), eventInfo) - } else { - triggerEffects(createDep(effects)) - } + triggerEffects(effects.length === 1 ? effects : createDep(effects)) } } From c5dd29ca1676ce6f35edcc759d005cf9cca1766e Mon Sep 17 00:00:00 2001 From: Liberty Date: Fri, 11 Aug 2023 09:31:25 +0800 Subject: [PATCH 2/2] refactor(effects): :recycle: effects is empty, should return --- packages/reactivity/src/effect.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/reactivity/src/effect.ts b/packages/reactivity/src/effect.ts index 5435392c2bc..90ce2d265da 100644 --- a/packages/reactivity/src/effect.ts +++ b/packages/reactivity/src/effect.ts @@ -373,6 +373,7 @@ export function trigger( effects.push(...dep) } } + if (effects.length === 0) return false if (__DEV__) { triggerEffects( effects.length === 1 ? effects : createDep(effects),