[TOC] #### 1. v-bind 綁定 class 屬性對象語法 --- 對象語法的含義是 **:class** 后面跟的是一個對象,語法格式: ```html <span :class="{類名: 布爾值}"></span> ``` 使用示例: 當布爾值為 true 時才顯示該類名 :class 屬性是一個對象,對象中的鍵值可以是布爾值,也可以是 vue 示例中的 data 數(shù)據(jù)名稱 ```html <span :class="{actived: isShow}"></span> <span :class="{active: true, image: false}"></span> ``` 當和普通的類同時存在時,不會沖突,會自動進行合并, 下面 class 屬性結(jié)果為: **class="online active"** ```html <span class="online" :class="{active: true, image: false}"></span> ``` 如果過于復(fù)雜,可以對象放在 computed、methods 中 (數(shù)組語法也可以放) ```html <span :class="attr">computed 計算屬性</span> <span :class="action()">methods 方法</span> ``` #### 2. v-bind 綁定 class 屬性數(shù)組語法 --- 數(shù)組語法的含義是 **:class** 后面跟的是一個數(shù)組,語法格式: ```html <div :class="['active', 'image']"></div> ``` 當數(shù)組中的值可以是字符串,也可以是 vue 實例中的 data 數(shù)據(jù) ```html <div :class="[color, fontSize]"></div> ``` #### 3. `:class` 屬性值使用 methods 方法 --- 很多場景下,我們需要根據(jù)邏輯判斷需要使用哪些 class 值,代碼可能會比較多,這些判斷寫在模板中則不易維護,此時可以將這些邏輯定義在 methods 中,:class 值綁定為 methods 中的方法 ```html <block v-for="(item, index) in data" :key="index"> <view :class="itemClass(index)">{{ item }}</view> </block> ``` JS 中的方法 ```javascript { methods: { itemClass(index) { const value = ['item', `item-${index}`] value.push(index % 2 == 0 ? 'border1' : 'border2') // 其他邏輯處理 return value } } } ``` #### 4. v-bind 綁定 style 屬性對象語法 --- 對象語法的含義是 **:style** 后面跟的是一個對象,語法格式: ```html <span :style="{css屬性名: 屬性值}"></span> ``` 基礎(chǔ)使用 (30px 必須加引號,否則會被當成變量解析) ```html <div :style="{fontSize: '30px', color: 'red'}">{{message}}</div> ``` :style 值也可以是 vue 實例中的 data 數(shù)據(jù) (css 是一個對象) ```html <div :style="css">{{message}}</div> ``` #### 5. v-bind 綁定 style 屬性數(shù)組語法 --- **:style** 數(shù)組語法就是后面跟一個數(shù)組,數(shù)組元素是對象,語法格式: 使用示例: (css1, css2 時 vue 示例中 data 數(shù)據(jù)對象) ```html <div :style="[css1, css2]">{{message}}</div> ```