在Vue的開發(fā)中,經(jīng)常會遇到需要批量為某些元素添加 class 的情況。Vue提供了多種方法來實現(xiàn)這個功能,本文將介紹其中的三種方法。
第一種方法是可以直接使用對象語法。在 Vue 中可以使用 v-bind 給對象添加 class。
<template>
<div v-bind:class="{ active: isActive, 'text-danger': hasError }"></div>
</template>
<script>
export default {
data() {
return {
isActive: true,
hasError: false
}
}
}
</script>
此代碼將可以為該 div 元素添加 active 和 text-danger 這兩個 class。isActive 為 true 時,元素會添加 active class,hasError 為 true 時,元素會添加 text-danger class。
第二種方法是使用數(shù)組語法。在 Vue 中也可以使用數(shù)組的方式來添加 class。
<template>
<div v-bind:class="[activeClass, errorClass]"></div>
</template>
<script>
export default {
data() {
return {
activeClass: 'active',
errorClass: 'text-danger'
}
}
}
</script>
此代碼將會為該 div 元素添加 active 和 text-danger 這兩個 class。activeClass 和 errorClass 分別存儲了相應(yīng)的 class。這種語法可以讓我們根據(jù)條件添加或者刪除 class。
第三種方法是在計算屬性中返回一個 class。在 Vue 中計算屬性是可以返回 class 的。
<template>
<div v-bind:class="computedClass"></div>
</template>
<script>
export default {
data() {
return {
isActive: true,
hasError: false
}
},
computed: {
computedClass: function () {
return {
'active': this.isActive,
'text-danger': this.hasError
}
}
}
}
</script>
此代碼將會為該 div 元素添加 active 和 text-danger 這兩個 class。computedClass 計算屬性返回了一個對象,該對象以 class 為 key 值,值為 true 或 false,表示是否添加相應(yīng)的 class。