如果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解决这个问题吗?我在官网没有找到。
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这种情况适合用v-on:change事件。