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