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

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

 

 

            // 此處有坑 當(dāng)你的 屬性為全數(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  可以是字符串,可以是對象類型,是 你要修改的或增加的值


藍(lán)藍(lán)設(shè)計m.820esy.cn )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計  ipad界面設(shè)計 、 包裝設(shè)計  圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 、平面設(shè)計服務(wù)。

分享本文至:

日歷

鏈接

個人資料

存檔