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