Skip to content

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====();==
    ==}==
  });
}

本站总访问 — 次