watch
是一个选项API,在组件的选项中使用,可监听指定的数据变化,并执行回调函数。
- 它需要显式指定要监听的数据和回调函数。
- 当被监听的数据变化时,Vue会自动调用回调函数。
- 相比之下,watch提供了更多的控制选项,例如可以设置深度监听、立即执行回调函数、手动停止监听等。
watchEffect
是一个函数API,在组件的setup函数或生命周期函数中使用。它会自动追踪依赖的响应式数据,并在数据变化时执行回调函数。
- 与watch不同,watchEffect不需要显式地指定要监听的数据,它会自动追踪函数内部使用的响应式数据。
- 由于watchEffect的自动追踪机制,它通常用于处理副作用,例如执行异步操作或者更新UI。
因此,如果需要对响应式数据进行细粒度的控制,可以使用watch API;
如果只是需要自动追踪响应式数据并触发副作用,可以使用watchEffect函数。
总结 :watch需要手动指定监听的数据 仅在数据变化时触发;watchEffect自动监听无需指定初始化时默认执行一次绑定函数