VUE數(shù)據(jù)data更新而列表不更新菩掏,關(guān)于VUE的響應(yīng)式原理的幾個方法(數(shù)組和對象)

關(guān)于數(shù)組

  1. 使用數(shù)組變異方法

    對Vue實例中data里面的數(shù)組使用變異方法操作的時候,Vue可以檢測到變化并進(jìn)行更新變異方法包括

    • push()
    • pop()
    • shift()
    • unshift()
    • splice()
    • sort()
    • reverse()
  2. 非變異方法

    非變異方法因為不會直接改變原始數(shù)組,所以需要使用另外的方法,比如用新數(shù)組去替換原數(shù)組乏沸。用含有相同元素的數(shù)組去替換原來的數(shù)組是非常高效的操作

    var example1 = new Vue({
      el: 'example1'
      data:{
        items:[
          {message:'Foo'},
          {message:'Baz'}
        ]
      }
    })
    example1.items = example1.items.filter(function (item) {
      return item.message.match(/Foo/)
    })
    

兩個錯誤的例子和對應(yīng)的正確的方法

  1. 使用example1.items[0] = newValue這樣的方法來改變數(shù)組,改變的值不具有響應(yīng)特性爪瓜,正確的方法是

    Vue.set(example1.items, 0, newValue)
    

    或者

    example1.items.splice(0, 1, newValue)
    
  2. 使用example1.items.length = newLength的方法改變數(shù)組的長度,Vue也無法檢測到變化匙瘪,正確的方法是

    example1.items.splice(newLength)
    

關(guān)于對象

Vue不能動態(tài)添加根級響應(yīng)式屬性铆铆,也不能檢測根級屬性中屬性的添加或刪除,這部分內(nèi)容丹喻,看VUE數(shù)據(jù)data更新而列表不更新薄货,VUE的響應(yīng)式原理的幾個小例子

  1. 既然不能添加根級屬性,那我們就把需要動態(tài)添加的屬性嵌套在已有的根級屬性里面碍论,通用使用set方法

    var example1 = new Vue({
      el: 'example1'
      data:{
        items:{
          name: 'john' 
        }
      }
    })
    Vue.set(example1.items, 'age', 27)
    

    效果相同的另一種寫法谅猾,在Vue實例內(nèi)使用

    var example1 = new Vue({
      el: 'example1'
      data:{
        items:{
          name: 'john' 
        }
      },
      methods: {
        setAttribute: function () {
          this.$set(this.items, 'age', 27)
        }
      }
    })
    
  2. 如果需要添加的屬性很多,那就可以使用對象替換的方法鳍悠,這種方法在上面的數(shù)組的方法中也用過

    var example1 = new Vue({
      el: 'example1'
      data:{
        items:{
          name: 'john' 
        }
      },
      methods: {
        setAttribute: function () {
          this.items = Object.assign({}, this.items, {
             age: 27,
             favoriteColor: 'Vue Green'
       })
        }
      }
    })
    

    這里要注意的地方是:一定要是對此對象的整體替換税娜,直接操作添加的屬性不具備響應(yīng)特性

    直接操作的例子

    var example1 = new Vue({
      el: 'example1'
      data:{
        items:{
          name: 'john' 
        }
      },
      methods: {
        setAttribute: function () {
          Object.assign(this.userProfile, {
             age: 27,
             favoriteColor: 'Vue Green'
       })
        }
      }
    })
    

    ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市藏研,隨后出現(xiàn)的幾起案子敬矩,更是在濱河造成了極大的恐慌,老刑警劉巖蠢挡,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弧岳,死亡現(xiàn)場離奇詭異凳忙,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)禽炬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進(jìn)店門涧卵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腹尖,你說我怎么就攤上這事柳恐。” “怎么了桐臊?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵胎撤,是天一觀的道長。 經(jīng)常有香客問我断凶,道長伤提,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任认烁,我火速辦了婚禮肿男,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘却嗡。我一直安慰自己舶沛,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布窗价。 她就那樣靜靜地躺著如庭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪撼港。 梳的紋絲不亂的頭發(fā)上坪它,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天,我揣著相機(jī)與錄音帝牡,去河邊找鬼往毡。 笑死,一個胖子當(dāng)著我的面吹牛靶溜,可吹牛的內(nèi)容都是我干的开瞭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼罩息,長吁一口氣:“原來是場噩夢啊……” “哼嗤详!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瓷炮,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤断楷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后崭别,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冬筒,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡恐锣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了舞痰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片土榴。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖响牛,靈堂內(nèi)的尸體忽然破棺而出玷禽,到底是詐尸還是另有隱情,我是刑警寧澤呀打,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布矢赁,位于F島的核電站,受9級特大地震影響贬丛,放射性物質(zhì)發(fā)生泄漏撩银。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一豺憔、第九天 我趴在偏房一處隱蔽的房頂上張望额获。 院中可真熱鬧,春花似錦恭应、人聲如沸抄邀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽境肾。三九已至,卻和暖如春胆屿,著一層夾襖步出監(jiān)牢的瞬間准夷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工莺掠, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人读宙。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓彻秆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親结闸。 傳聞我的和親對象是個殘疾皇子唇兑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容