const { reactive, effect, watch } = require('vue');
const nums = reactive({ num1: 1, num2: 2, num3:3})
effect(() => {
console.log('effect' + nums.num1)
watch(() => {
console.log('watch' + nums.num2)
},() => {
console.log('scheduler' + nums.num3)
},
{immediate: true}
)
})
nums.num3 = 4
输出
effect1
watch2
scheduler3
effect1
watch2
scheduler4
只有在执行effect.run时才会有activeEffect(effect上线文),执行scheduler时不会收集,但是如果父级的activeEffect存在,此时父级会收集到这个变化