如果watch中的兩個data變量相互調用了,會發生死循環。watch:{ 'a':{
handler:function(val,oldVal){ if(this.b == 0){ this.b = 1;
}else{ this.b = 0;
}
},
deep:true
}, 'b':{
handler:function(val,oldVal){ if(this.a == 0){ this.a = 1;
}else{ this.a = 0;
}
},
deep:true
},
}類似于這樣,監聽當a改變了去改變b,監聽當b改變了去改變a。這樣的話a和b會一直死循環下去,是在寫全選、反選的時候遇到這個問題,當用戶勾選全選后,再取消勾選一個條目,全選也會相對應取消勾選,這樣就一直死循環下去了。vue提供了相關的api解決這個問題嗎?我在官網沒有找到。
Vue $watch 死循環問題
慕無忌1623718
2018-09-04 13:23:02