Vue.js 中遇到的坑坑坑 - 對象如何動態(tài)添加屬性

先看一下官方說明:受 ES5 的限制,Vue.js 不能檢測到對象屬性的添加或刪除。因為 Vue.js 在初始化實例時將屬性轉為 getter/setter,所以屬性必須在 data 對象上才能讓 Vue.js 轉換它,才能讓它是響應的。
項目中,需要更新服務器數(shù)據(jù)增加一些屬性(比如:按鈕狀態(tài)、按鈕文案),用來控制一個服的角色,增加后點擊視圖上一點反應都沒有,但是用console.log
打印出來發(fā)現(xiàn)值的確的有變化的。
也就是說,數(shù)據(jù)的變化不能觸發(fā)視圖更新。原因就是如上面所說,因為這個屬性是我后來添加的,不能被 Vuejs 檢測到。這時候需要使用$set(key, value)這個API。

假如你的數(shù)據(jù)是這樣:

data() {
  return {
    testItems: [
      {
        zServer: "公測001區(qū)公測001區(qū)"
      }
    ]
  }
}

你需要在一些操作后為testItems里面的每個對象增加一個show屬性,則需要這樣寫:

for( let i = 0 , len = this.testItem.length ; i < len; i++ ) {
    let obj = this.testItem[i];
    obj.ACTOR_NAME = "五殺~";
    obj.ACTOR_BTN = "取消添加";

    this.$set( this.testItem, i, obj );
}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容