9.watch和watchEffect的区别

43 阅读1分钟

watch监测一个或多个数据源,并在数据源发生变化时调用一个回调函数 watchEffect立即执行函数,被动地追踪依赖,当依赖变化时调用函数

两者之间区别不大,watch是数据变了,允许用户可以执行一些额外的操作,watchEffect是数据变了重新执行函数

watch(
  () => state.appId,
  () => {
    // 数据变了,内部会执行cb
    state.obj = state.appList.find((item) => item.id === state.appId);
    state.config = JSON.parse(state.obj.config);
  }
);
watchEffect(()=>{
  //数据变了内部会执行effect.run()重新运行getter
})