Javascript 当方法本身更改值时,是否有任何方法停止触发vuejs watch方法?
这里,alert方法首先由DOM触发,然后在方法更改值时再次触发。有没有办法停止重复Javascript 当方法本身更改值时,是否有任何方法停止触发vuejs watch方法?,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,这里,alert方法首先由DOM触发,然后在方法更改值时再次触发。有没有办法停止重复 我的目标是检查“alert”的值是否更改,如果更改,我想在4s后重置该值,并计算更改的次数。按照Roy J的建议,尝试在DOM上放置一个change处理程序,而不是使用监视程序 newvue({ el:“#应用程序”, 数据(){ 返回{ 警报:“”, 警报计数器:0, resetTimeoutId:null, resetTimeoutDelay:1000,//4000 } }, 方法:{ 重置(){ thi
我的目标是检查“alert”的值是否更改,如果更改,我想在4s后重置该值,并计算更改的次数。按照Roy J的建议,尝试在DOM上放置一个
change
处理程序,而不是使用监视程序
newvue({
el:“#应用程序”,
数据(){
返回{
警报:“”,
警报计数器:0,
resetTimeoutId:null,
resetTimeoutDelay:1000,//4000
}
},
方法:{
重置(){
this.incrementAlertCounter()
this.handlePreviousResetTimeout()
this.resetTimeoutId=setTimeout(()=>{
this.alert=“”
},此为。resetTimeoutDelay)
},
handlePreviousResetTimeout(){
如果(!this.resetTimeoutId)返回
clearTimeout(this.resetTimeoutId)
},
递增警报计数器(){
此警报计数器+=1
},
},
})
{{alertCounter}}
在进行更改的DOM上放置一个更改处理程序
处理程序,因为您希望区分在DOM中进行的数据更改和未进行的数据更改。或者使用一种方法来更新警报
文本及其更改,而不是使用手表。
watch: {
alert() {
setTimeout(() => {
this.alert = "";
}, 4000);
}
}