Vue 3 中 watch 和 watchEffect 的清理副作用:什么时候需要 onCleanup,怎么用才不踩坑
在 Vue 3 的 Composition API 里,watch 和 watchEffect 用起来很顺手,但一旦监听的回调里包含异步操作,比如请求接口、设置定时器、绑定事件,就很容易出现“上一次还没执行完,下一次又来了”的情况。典型场景是搜索框输入联想:用户快速输入几个字符,每次变化都发请求,返回顺序却不一定按发送顺序,导致最终展示的是过期结果。这类问题不会报错,但会让页面出现闪烁、数据错乱,排查起来很烦。Vue 提供了 onCleanup 回调,允许在副作用即将重新运行或监听器停止时做清理。这篇文章从实际代码出发,讲清楚 onCleanup 的触发时机、和 watch 的 flush 选...