在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ vue是如何監(jiān)聽修改數(shù)組length和直接vm.items[indexOfIte

vue是如何監(jiān)聽修改數(shù)組length和直接vm.items[indexOfItem] = newValue的

看文檔文檔說:
由于 JavaScript 的限制,Vue 不能檢測以下變動(dòng)的數(shù)組:

當(dāng)你利用索引直接設(shè)置一個(gè)項(xiàng)時(shí),例如:vm.items[indexOfItem] = newValue
當(dāng)你修改數(shù)組的長度時(shí),例如:vm.items.length = newLength

而我嘗試修改時(shí)卻可以成功觸發(fā)視圖更新,不需要this.$set():

data () {
    return {
      arr: [11, 22 ,33]
    }
  },
  methods: {
    updateMessage: function () {
      this.arr[0] = 0
      this.arr.length = 1
    }
  }

我之前了解vue是循環(huán)數(shù)組八大方法并加以修改實(shí)現(xiàn)監(jiān)聽,現(xiàn)在是如何監(jiān)聽到對(duì)length和直接賦值操作的呢?

回答
編輯回答
膽怯

vue 后面版本是打算做到 vm.items[indexOfItem] = newValue 也響應(yīng)式更新頁面的,不過也是要等到 3.0 版本之后,會(huì)通過 Proxy 這么個(gè)東西來搞

然而現(xiàn)版本確實(shí)是不會(huì)更新頁面的,至少我用的 2.5.3 版本不行,線上 demo

如果題主確定可以更新頁面,請(qǐng)?zhí)峁┮粋€(gè)線上小 demo 復(fù)現(xiàn)一下

2018年2月15日 10:49
編輯回答
厭惡我

不知道你說的能修改成功是什么意思,你這樣修改不能實(shí)時(shí)的反應(yīng)到視圖上

2018年9月10日 21:44
編輯回答
浪婳

你們說可以的,是不是用了mpvue,而不是vue。。。

2018年7月7日 03:11
編輯回答
情皺

那真相只有一個(gè), 我猜你是在 created 內(nèi)調(diào)用 updateMessage 的 ? 這樣子是能成功. 因?yàn)榻M件還沒掛載進(jìn)去呀.

2018年9月3日 08:18