取消监听后 如何恢复监听
时间: 2024-03-23 13:41:49 浏览: 42
flutter 中监听滑动事件
在 Vue 中,可以使用 `$watch` 方法重新创建一个监听器来恢复监听。
示例代码如下:
```javascript
export default {
data() {
return {
obj: {
name: 'Tom',
age: 18
},
isWatchingObj: true // 是否正在监听 obj
}
},
watch: {
obj: {
handler(newValue, oldValue) {
console.log('obj changed', newValue, oldValue)
},
immediate: true,
deep: true
}
},
methods: {
toggleWatchObj() {
if (this.isWatchingObj) {
this.$watch('obj', null) // 取消监听
} else {
this.$watch('obj', (newValue, oldValue) => {
console.log('obj changed', newValue, oldValue)
}, { immediate: true, deep: true }) // 重新监听
}
this.isWatchingObj = !this.isWatchingObj
}
}
}
```
以上代码,提供了一个 `toggleWatchObj` 方法,用于切换是否监听 `obj`。当 `isWatchingObj` 为 `true` 时,会取消对 `obj` 的监听;当 `isWatchingObj` 为 `false` 时,会重新创建一个监听器来监听 `obj`。
阅读全文