-
-
Notifications
You must be signed in to change notification settings - Fork 9k
Closed
Labels
🧹 p1-chorePriority 1: this doesn't change code behavior.Priority 1: this doesn't change code behavior.
Description
What problem does this feature solve?
在 triggerEffects 函数中,对 dep 的判断多余,将 dep:Set 展开到一个数组的操作多余。
下图是所有用到 triggerEffects 函数的地方:

dep 参数不可能是Array,而且dep是Set对象,可以直接for of 遍历。
export function triggerEffects(
dep: Dep | ReactiveEffect[],
debuggerEventExtraInfo?: DebuggerEventExtraInfo
) {
// spread into array for stabilization
const effects = isArray(dep) ? dep : [...dep]
for (const effect of effects) {
if (effect.computed) {
triggerEffect(effect, debuggerEventExtraInfo)
}
}
for (const effect of effects) {
if (!effect.computed) {
triggerEffect(effect, debuggerEventExtraInfo)
}
}
}What does the proposed API look like?
export function triggerEffects(
dep: Dep,
debuggerEventExtraInfo?: DebuggerEventExtraInfo
) {
for (const effect of dep) {
if (effect.computed) {
triggerEffect(effect, debuggerEventExtraInfo)
}
}
for (const effect of dep) {
if (!effect.computed) {
triggerEffect(effect, debuggerEventExtraInfo)
}
}
}Metadata
Metadata
Assignees
Labels
🧹 p1-chorePriority 1: this doesn't change code behavior.Priority 1: this doesn't change code behavior.