1、動態綁定 class 的方法之對象語法:
我們可以傳給 v-bind:class 一個對象,以動態地切換 class:
<div v-bind:class="{ active: isActive }"></div>
你也可以在對象中傳入更多屬性來動態切換多個 class,v-bind:class 指令也可以與普通的 class 屬性共存,
<div class="static" v-bind:class="{ active: isActive,error: isError }"></div>
我們也可以在這里綁定一個返回對象的計算屬性,這是一個常用且強大的模式:
<div v-bind:class="classObject"></div>
data: {
isActive: true,
error: null
},
computed: {
classObject: function () {
return {
active: this.isActive && !this.error,
'text-danger': this.error && this.error.type === 'fatal'
}
}
}
2、動態綁定 class 的方法之數組語法:
當需要使用多個 class 時,我們可以把一個數組傳給 v-bind:class,以應用一個 class 列表:
<div v-bind:class="[activeClass, errorClass]"></div>
data: {
activeClass: 'active',
errorClass: 'text-danger'
}
如果想根據條件切換列表中的 class,可以用三元表達式或者在數組語法中使用對象語法:
<div v-bind:class="[isActive ? activeClass : '', errorClass]"></div> // 三元表達式
<div v-bind:class="[{ active: isActive }, errorClass]"></div> // 數組中的對象語法
當然也可以綁定一個計算屬性:
<p :class="classes"></p>
data:{
size:'large',
disabled:true
},
computed:{
classes:function(){
return[
'btn',
{
['btn-' + this.size]:this.size !== '',
['btn-disabled']:this.disabled
}
]
}
}
3、當在一個自定義組件上使用 class 或 :class 屬性時,這些類將被添加到該組件的根元素上面,這個元素上已經存在的類不會被覆蓋,當要給具體的子元素設置類名時,應當使用組件的 props 來傳遞。
4、使用 v-bind:style(即 :style)可以給元素綁定內聯樣式,方法與 :class 類似,也有對象語法和數組語法,css 屬性名稱要使用駝峰命名或短橫線分隔命名(記得用單引號括起來)。