Vue 3 中 watch 和 watchEffect 到底怎么选?别再用错了
在 Vue 3 的日常开发中,响应式数据的副作用处理绕不开 watch 和 watchEffect 这两个 API。很多人在从 Vue 2 迁移过来之后,习惯性地把所有监听逻辑都写成 watch,结果遇到异步竞态、深层对象监听失效、或者回调执行时机不符合预期的问题。反过来,也有人觉得 watchEffect 自动收集依赖更省事,却在需要拿到旧值、或者想精确控制监听源的时候撞了墙。这两个 API 的设计目标并不一样:watch 是显式指定监听源,回调里能拿到新旧值,适合做数据变化后的副作用;watchEffect 则是在回调执行时自动追踪响应式依赖,依赖一变就重新执行,更适合那些“依赖不确定、但...