码迷,mamicode.com
首页 > 其他好文 > 详细

vue watch监听对象及对应值的变化

时间:2021-02-03 10:56:49      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:fun   span   get   cti   bsp   getname   hand   set   return   

rule:{
	name:"",
	age:""
}

watch:{
	rule:{
		handler:function(){
			//do something
		},
		deep:true
	}
}

  deep设置为true的意思是修改rule中任何一个属性,都会执行handler这个方法,但是这样消耗比较大,对象嵌套过深的时候更加严重

 

有时候我们只是想知道对象中某一属性的变化的时候:

"rule.name":{
    handler:function(a,b){
    this.count++
    console.log(this.count)
  }
},
也可以使用计算属性来计算这个值:

computed: {
  getName: function() {
  return this.rule.name
 }
},
watch:{
    getName:{
        handler:function(){
            //do something
        }
    }
}

https://www.cnblogs.com/my466879168/p/12430648.html

 

 

2.设置对象不变化的解决

  1. 通过vue的this.$set(object,key,value)
  2. 通过Object.assign()重新创建一个对象,例如this.someObject = Object.assign({}, this.someObject, { a: 1, b: 2 })

vue watch监听对象及对应值的变化

标签:fun   span   get   cti   bsp   getname   hand   set   return   

原文地址:https://www.cnblogs.com/Guroer/p/14363853.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!