2019-9-9 seo達人
vue 1.0.3 中 $set 函數是動態改變或添加一個 data 中的屬性值時 屬性 key 不可以使用純數字。
例如:
var app = new Vue({
el:"#app",
data:{
test:{
k1:'v1',
k2:'v2'
}
},
methods:{
changeTestValue:function{
// 動態改變 test 中某一屬性的值
var key = 'test.k1'; // 改變 test 屬性中的 k1 的值
this.$set(key,'changev1'); // 此處執行沒有問題
// 改變 整個 test 的值可以使用
this.$set('test',{k1:'change-demo-v1',k2:'change-demo-v2'}); // 此處執行沒有問題
// 動態給 test 增加一個屬性 k3
this.$set('test.k3','test-add-value3'); // 此處執行沒有問題
// 此處有坑 當你的 屬性為全數字的時候,則 函數無效,不報錯,但是也添加不上值。
// 例如
this.$set('test.123','test-add-123'); // 此處執行不報錯,但是也沒有效果。
// 所以在使用老版本vue的時候盡量避免 屬性 key 未純數字,或其他特殊字符。
}
}
});
除了這個坑以外還有另外一個坑,不過沒有具體試驗,
watch 監聽某一值得變化,好像有點問題, 實際結果是只要 data 中的任意一個值發生變化都會被捕捉到。
最后還是使用 vue 2.x 以上版本吧,bug 少很多。
另外 $set 函數在2.x 中使用方式有所變化。
this.$set(target,key,obj);
target 對象類型,是需要賦值或修改的對象,
key 是字符串類型, 是 target 對象的屬性
obj 可以是字符串,可以是對象類型,是 你要修改的或增加的值
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務。