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

直接通过watch监听对象,对象的属性值变化并不会触发这个监听,通过查文档发现还有一个属性deep:true,可以深入监听,


   data:{
        return {
            eleDate:{
                a: '对象a',
                b: '对象b'
            }
        }     
    },
    watch: {
      eleDate: {
        handler: (val, olVal) => {
          console.log('我变化了', val, olVal)//但是val和olVal值一样
        },
        deep: true
      }
    },

但是监听到的新旧值是一样的,所以通过computed和watch使用

    data:{
        return {
            eleDate:{
                a: '对象a',
                b: '对象b'
            }
        }     
    },
    watch: {
      eleDateNew: {
        handler: (val, olVal) => {
          console.log('我变化了', val, olVal)
        },
        deep: true
      }
    },
    computed: {
      eleDateNew() {
        return JSON.parse(JSON.stringify(this.eleDate))
      }
    }                    

 

posted @ 2019-08-20 14:16  言穹  阅读(14452)  评论(0编辑  收藏  举报