vue watch属性监听对象变化。

有时候要监听对象的变化。 我一般用来做一堆input 表单里面条件是否达到,然后按钮的颜色变化。

 data: {

  return: {

form: {  // 这里面暂时不处理对象格式。如{ a:'',b: '' }  
name: '',
tel: '',
product_value: [], // 产品数组第一个是第一级,第二个是第二级。
product_label: '', //产品选择选择对应的文字
xinghao_value: '', // 型号的值
xinghao_label: '', // 型号的名字
guige_value: '', // 规格的值
guige_label: '', // 规格的名字
order_size: '', // 订单编号
reason: '', // 原因
},

}

}

watch:{

form:{//深度监听,可监听到对象、数组的变化
handler(val, oldVal){
console.log(val);//但是这两个值打印出来却都是一样的
var canSubmit = false
for(var key in val){
if(typeof val[key] == 'boolean'){
if(!val[key]){
canSubmit = false
break
}else{
canSubmit = true
}
}else{
if(!val[key].length>0){
canSubmit = false
break
}else{
canSubmit = true
}
}

}
this.canSubmit = canSubmit


},
deep:true
}


},

原文地址:https://www.cnblogs.com/dashaxiong/p/12613298.html