欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue $set 給數(shù)據(jù)賦值的實(shí)例

 更新時(shí)間:2019年11月09日 17:44:15   作者:小楠的代碼生涯  
今天小編就為大家分享一篇vue $set 給數(shù)據(jù)賦值的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

如果在實(shí)例創(chuàng)建之后添加新的屬性到實(shí)例上,它不會(huì)觸發(fā)視圖更新。

業(yè)務(wù)介紹:模擬后臺(tái)數(shù)據(jù)向DOM樹上遍歷數(shù)據(jù),再向數(shù)據(jù)里添加狀態(tài)屬性,根據(jù)狀態(tài)改變顯示圖片,默認(rèn)nochecked.png,點(diǎn)擊時(shí)改變狀態(tài)。顯示checked.png

DOM樹

<div class="cartContent" :class="{'bg' : status == 2}" v-for="(val,key) in imgListData" :id="key">
<div class="choose">
![](../assets/img/radio-checked.png)
![](../assets/img/radio-nochecked.png)
</div>
.........
</div>

模擬數(shù)據(jù)

data(){
     return{
      responseData:[
        {'id':'1','name':'女裝','price':115,'num':1,'pic':'../static/img/1.jpg'},
        {'id':'2','name':'男裝','price':110,'num':1,'pic':'../static/img/2.jpg'},
        {'id':'3','name':'童裝','price':118,'num':2,'pic':'../static/img/3.jpg'}
        ],
      imgListData:[]
     }
   },

向原數(shù)據(jù)添加新屬性status

created() {
    this.allDataList()
},
methods:{
    allDataList(){
      for(let val of this.responseData){
//       val.status=false;//寫這個(gè)有問題
       this.$set(val,'status',false)//此處為重點(diǎn)
       this.imgListData.push(val)
      }
       console.log(this.imgListData)
}

點(diǎn)擊事件(根據(jù)索引改變當(dāng)前屬性的狀態(tài))

 choose(index){
    if(this.imgListData[index].status){
     this.imgListData[index].status=false;
    }else{
     this.imgListData[index].status=true
    }
 },

輸出發(fā)現(xiàn)有status屬性,狀態(tài)也由false改為了true,但是就是樣式要刷新一下才能顯示。把里面的屬性仔細(xì)看一遍原來status沒有g(shù)et/set方法。錯(cuò)誤展示:

把 val.status=false; 改為this.$set(val,'status',false)問題就解決了。

以上這篇vue $set 給數(shù)據(jù)賦值的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論