vue3中对于同一个变量进行多次watch的结果是什么呢?

比如一个vue组件中有两组逻辑,他们都需要通过watch来监听同一个变量的变化。

//逻辑A
watch(test,()=>{
  console.log('watch1')
})
//逻辑B
watch(test,()=>{
  console.log('watch2')
})

那么这两个watch,最终运行时是:
1、两个watch运行时会自动合并成一个,代码执行顺序和编写顺序相同。

watch(test,()=>{
  console.log('watch1')
  console.log('watch2')
})

2、运行时也有两个watch,虽然监听的变量一样,但是各自处理各自的监听回调。

watch(test,()=>{
  console.log('watch1')
})
watch(test,()=>{
  console.log('watch2')
})
阅读 3k
2 个回答

test会对应一个deps的存放依赖的数组,当test变化时,会遍历这个数组触发相关的回调。

谢邀,没什么特别的结果。
既然可以分开watch,那就说明不同逻辑之间没有依赖关系,既然没有依赖关系也就无所谓顺序,反正执行就好了。用订阅的角度来解释会更清晰,虽然不是100%准确。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题