写vue3watch的时候因为只想监控checkedNumbers的值。
为什么不用computed?因为想要watch每一个接口上面headers的值,涉及到接口请求调用,所以用watch(如果想法不对,请各位不吝赐教,感谢大家!)
watch(
() => checkedNumbers,
{ deep: true }
);
报了如下错误:
[Vue warn]: 'watch(fn, options?)' signature has been moved to a separate API. Use 'watchEffect(fn, options?)' instead. 'watch' now only supports 'watch(source, cb, options?) signature.
查了文档vue3的watch的语法,如下:
watch(
source, // 监视的对象或 getter 函数
callback, // 变化时调用的回调函数
options? // 可选项,比如 deep: true
);
正常大家在变化的时候想要触发其他逻辑,就用要用到callback,所以要用下面的写法:
watch( () => checkedNumbers, // 需要监视的数据
(newVal, oldVal) => { console.log('Environment settings changed:', newVal); // 在变化时可以触发其他逻辑 },
{ deep: true } // 通过设置 deep: true,实现深度监听
);
如果想要简写,如下,保留一个空函数即可
watch(
() => checkedNumbers,
() => {},
{ deep: true }
);