渐进式编程课
Vue 目录
第 10 课2026.09.11

在下一次监听回调前取消旧任务。

第 10 课:watch清理副作用

  • 日期:2026-09-11
  • 课程序号:第 10 课
  • 知识点:onCleanup

用途

在下一次监听回调前取消旧任务。

核心概念

onCleanup 注册撤销逻辑,避免过期定时器继续产生副作用。

最小代码或操作示例

vue
watch(keyword, (value, _, onCleanup) => {
  const id = setTimeout(() => console.log(value), 500)
  onCleanup(() => clearTimeout(id))
})

3~5 分钟练习

快速修改三次关键字,观察输出次数。

参考答案

旧定时器被清理,停顿后只输出最后一次值。

与上一课的联系

上一课用 watch 执行副作用;本课清理过期副作用。