Appearance
effect的fn中设置属性值
本节目标:理解“effect的fn中设置属性值”的核心思路,并能把它用于实际开发或面试表达。
effect(() => {
==state====.====aget== ===== ==Math====.====random====();==
document.getElementById('app').innerHTML = state.name + '今年' + state.age + '岁了' + state.n
});会死循环;
我们在执行Effect的时候,又要执行自己,那我们需要屏蔽掉,不要无限调用;
export function trigger(target, type, key, value, oldValue) {
const depsMap = targetMap.get(target);
// 触发的值不在模板中使用
if (!depsMap) return;
// 找到了属性对应的effcts
const effects = depsMap.get(key);
effects && effects.forEach(effect => {
==if== ==(====effect== ==!==== ==activeEffect====)== =={==
==effect====.====run====();==
==}==
});
}