vue移除watch监听
时间: 2023-11-14 09:11:37 浏览: 70
在Vue中,移除watch监听的方法有两种,一种是通过将watch赋值给一个变量,然后在达到条件时调用该变量来终止监听;另一种是通过取消监听函数来实现。具体实现方法如下:
1. 将watch赋值给一个变量,然后在达到条件时调用该变量来终止监听:
```
let stopWatch = watch(() => state.room, (newval, oldval) => {
console.log("新值:", newval, "老值:", oldval);
}, {deep:true});
// 停止监听
stopWatch();
```
2. 通过取消监听函数来实现:
命令式写法:
```
export default {
data: {
showType: false
},
mounted() {
const unwatch = this.$watch('showType', function(newValue, oldValue){
console.log(newValue);
// 取消监听
unwatch();
});
},
}
```
声明式写法:
```
export default{
data: {
showType: false
},
watch: {
showType: {
handler(newValue, oldValue) {
console.log(newValue);
// 取消监听
this.$options.watch.showType = null;
},
immediate: true
}
}
}
```