解决办法:
采用computed计算属性监听,间接打印新旧值。因为watch虽然监听到对象(或数组)内部变化,但是由于新旧值同源,导致没有更新。可采用computed计算属性进行对源对象的深拷贝,完成新值更新。如下:
let vm = new Vue({
el:"#box",
data:{
list:[],
isShow:true,
userName:"",
passWord:"",
id:0,
del:"删除"
},
computed:{ //监听list,并进行深拷贝
newList(){
return JSON.parse(JSON.stringify(this.list));
}
},
watch:{
newList:function(newlist,oldlist){ //再监听计算属性,打印新旧值
console.log(newlist,oldlist);
if(newlist.length!==0){
this.isShow = false;
}
}
}
}