1. 程式人生 > >vue的watcher 關於數組和對象

vue的watcher 關於數組和對象

font style dex handler set tro com ron 修改

數組

不能被監聽到的情況

1、直接下標賦值(但對象直接修改原有屬性值可以渲染視圖,雖然也監聽不到)

2、修改數組length

解決方法:

this.$set(this.arr,index,val)

push或splice等修改原數組的方法

直接賦值數組

對象

不能被監聽的情況

1、直接修改、添加、刪除屬性(修改雖然監聽不到,但可以重新渲染視圖,刪除、添加不會重新渲染視圖;設置deep:true則可以監聽)

2、this.$set()修改原有屬性

解決方法:

1、obj:{

  handler(){},

  deep:true

}

2、this.$set()添加、this.$delete()刪除屬性

3、直接重新賦值對象

   this.obj=Object.assign({},this.obj,{lover:‘song‘})

4、活用computed

技術分享圖片

vue的watcher 關於數組和對象