鍍金池/ 問(wèn)答/HTML/ 監(jiān)聽(tīng)數(shù)組數(shù)據(jù)是否發(fā)生了變化

監(jiān)聽(tīng)數(shù)組數(shù)據(jù)是否發(fā)生了變化

在vue 的頁(yè)面中,data 是渲染表格的一個(gè)數(shù)據(jù),如何去監(jiān)聽(tīng)或者用watch去偵查data發(fā)生了變化?

data: [
     {
         name: 'John Brown',
         age: 18
     },
     {
         name: 'Jim Green',
         age: 24
     },
     {
         name: 'Joe Black',
         age: 30,
         address: 'Sydney No. 1 Lake Park',
         date: '2016-10-02'
     }]
回答
編輯回答
真難過(guò)
  1. 如果只是監(jiān)聽(tīng)數(shù)組列表項(xiàng)的增減,直接對(duì)數(shù)組進(jìn)行監(jiān)聽(tīng)就好了
watch:{
  data (newVal,oldVal) {
    
  }
}
  1. 如果是要對(duì)數(shù)組列表項(xiàng)的內(nèi)容是否發(fā)生改變做監(jiān)聽(tīng),需要加上一個(gè)deep:true
data: {
    handler(newVal, oldVal) {
        console.log('深度監(jiān)聽(tīng)', newVal, oldVal)
    },
    deep: true
}
2017年5月29日 09:12
編輯回答
挽歌

我之前寫(xiě)過(guò)類似的,可以寫(xiě)一個(gè)函數(shù)去操作表格里面的數(shù)據(jù),然后用watch去監(jiān)聽(tīng)這個(gè)函數(shù),大概這樣子,watchData(){//....} watch: {你要監(jiān)聽(tīng)的參數(shù):'watchData'}

2017年7月5日 21:24
編輯回答
青瓷

用watch啊 類似這樣的

watch:{
  data (newValue,old) {
    
  }
}
2017年12月5日 22:39
編輯回答
淡墨

用深拷貝重新生成一個(gè)對(duì)象 來(lái)觀察這個(gè)心的對(duì)象就可以了

2017年2月26日 14:14
編輯回答
涼汐
watch:function(old,newval){
    data:return newval
}
2018年2月2日 03:20