四、副作用清理:避免过期副作用
当侦听器的回调包含异步操作(如请求、定时器)时,若数据源在异步操作完成前变化,可能导致“过期的副作用”(如旧请求的结果覆盖新请求)。此时需通过“清理函数”取消过期操作。
Vue 提供两种注册清理函数的方式:
1. 通过 onCleanup 参数(全版本支持)
watch 的回调和 watchEffect 的回调都可接收一个 onCleanup 函数作为参数,调用它注册清理逻辑——当侦听器“即将重新执行”或“被停止”时,会先执行清理函数:
// 用 watch 示例:取消过期请求
watch(id, (newId, oldId, onCleanup
评论前必须登录!
注册