使用 vue 1.0.3 $set 函數(shù)遇到的坑

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í)行沒有問題

            // 改變 整個(gè) test 的值可以使用

            this.$set('test',{k1:'change-demo-v1',k2:'change-demo-v2'});   // 此處執(zhí)行沒有問題

            // 動(dòng)態(tài)給 test 增加一個(gè)屬性  k3

            this.$set('test.k3','test-add-value3');   // 此處執(zhí)行沒有問題

 

 

            // 此處有坑 當(dāng)你的 屬性為全數(shù)字的時(shí)候,則 函數(shù)無效,不報(bào)錯(cuò),但是也添加不上值。

            // 例如

            this.$set('test.123','test-add-123');  // 此處執(zhí)行不報(bào)錯(cuò),但是也沒有效果。

 

 

            // 所以在使用老版本vue的時(shí)候盡量避免 屬性 key 未純數(shù)字,或其他特殊字符。

         }

     }

});



除了這個(gè)坑以外還有另外一個(gè)坑,不過沒有具體試驗(yàn),

watch 監(jiān)聽某一值得變化,好像有點(diǎ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ì)sillybuy.com )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國內(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ù)。

分享本文至:

日歷

鏈接

個(gè)人資料

存檔