因為 new Vue 構造函數執行時候vue就使用object.defineproperty的set 和get 屬性進行了雙向綁定,data中的數據必須事先定義好才能監聽到,所以要想自定義往data中添加數據並且是響應式的 就要使用vue內部基於 object.defineproperty封裝的 vue.set()方法。
Vue.set(target, key/index, value) 向響應式對象中添加一個屬性,並確保這個新屬性同樣是響應式的,且觸發視圖更新。它必須用於向響應式對象上添加新屬性,因為 Vue 無法探測普通的新增屬性 (比如 this.obj.newProperty = 'hi')
https://www.cnblogs.com/goloving/p/10986120.html