var vm=new Vue( {
el:'#itany',
data:{
name:'tom',
age:23,
user:{
id:1001,
name:'alice'
}
},
doUpdate(){
this.user.name='湯姆'
},
doAdd(){
// this.user.age=25; //通過(guò)普通方式為對(duì)象添加屬性時(shí)vue無(wú)法實(shí)時(shí)監(jiān)視到
// this.$set(this.user,'age',18); //通過(guò)vue實(shí)例的$set方法為對(duì)象添加屬性,可以實(shí)時(shí)監(jiān)視
// Vue.set(this.user,'age',22);
if(this.user.age){
this.user.age++;
}else{
Vue.set(this.user,'age',1);
}
// console.log(this.user);
},
doDelete(){
if(this.user.age){
// delete this.user.age; //無(wú)效
Vue.delete(this.user,'age');
}
}
//方式2:使用vue實(shí)例提供的watch選項(xiàng)
watch:{
age:(newValue,oldValue) => {
console.log('age被修改啦,原值:'+oldValue+',新值:'+newValue);
},
user:{
handler:(newValue,oldValue) => {
console.log('user被修改啦,原值:'+oldValue.name+',新值:'+newValue.name);
},
deep:true //深度監(jiān)視,當(dāng)對(duì)象中的屬性發(fā)生變化時(shí)也會(huì)監(jiān)視
}
}
});
//方式1:使用vue實(shí)例提供的$watch()方法
vm.$watch('name',function(newValue,oldValue){
console.log('name被修改啦,原值:'+oldValue+',新值:'+newValue);
},true);