vue 判断对象属性是否变化 踩坑日记

小坑,记录一下:
我更改了某个属性,然后又复原的话,这样对象也是没有改变的
如果只是简单的监听watch肯定不行,每个属性进行判断也不尽人意,

首先想到的肯定是watch

先自定义一个对象formOrigin 赋值
错:this.formOrigin = this.form
对:this.formOrigin = Object.assign({},this.form)

watch监听(isEdit默认为true 没有更改)

form:{
         handler(newValue,oldValue){
             if(oldValue&&oldValue.id) {
               for(let key in this.formOrigin) {
                 if(newValue[key]!= this.formOrigin[key]&&newValue[key]!='') {
                  this.isEdit = false
                  break;
                 }
                 else {
                   this.isEdit = true
                 }
               }
              
      }
          },
        deep:true,//只要当form中的值改变就会触发这个函数且,newValue,oldValue两个参数值相同;
       }

你可能感兴趣的:(笔记,vue.js,前端,javascript)