鍍金池/ 問答/HTML/ vue addClass問題?

vue addClass問題?

我在代碼里這樣設(shè)計:
<span v-bind:class="{check:isCheck}" class="fa fa-check-circle normal">?</span>
當我點擊某個按鈕時,將isCheck設(shè)有true
this.isCheck = true
并且給span再增加一個class check-icon
d.classList.add('check-icon') //d為span

這兩句代碼在同一個函數(shù)內(nèi),但是最后我只添加了check一個class,為什么?
如果我d.classList.add('check-icon') 單獨執(zhí)行則可以添加。

回答
編輯回答
貓小柒

數(shù)據(jù)驅(qū)動更新的時候,整個dom是重新渲染的,相當于你js添加類名之后,vue又重新創(chuàng)建了一遍dom,把原來的覆蓋掉了。
class可以綁定多個值的啊,為社么要操作dom。、


<li 
 @click="addIcon(item)" 
 v-for="(item, index) in list" :key="index" 
 :class="[true ?'big': 'small', item.class]"> //用這種方式綁定,可以控制
  {{item.name}}
</li>
list: [
    { name: 1 },
    { name: 2 },
    { name: 3 },
    { name: 4 }
]
addIcon (item) {
  this.$set(item, 'class', 'red') // list中沒有class屬性,所以需要借助$set動態(tài)添加才能響應(yīng)
}
2017年9月12日 04:52