- 用於文字插值
- 動態繫結元素的樣式名稱class和內聯樣式style
-
繫結class的幾種方式
-
物件語法:給v-bind:class設定一個物件,可以動態地切換class
<div v-bind:class="{ 'active': isActive }"></div> <script> var app = new Vue({ el: '#app', data: { isActive:true } }) </script>
當class的表示式過長或邏輯複雜時,還可以繫結一個計算屬性
<div id="app"> <div :class="classes"></div> </div> <script> var app = new Vue({ el: '#app', data: { isActive: true, error:null }, computed: { classes: function () { return { active: this.isActive && !this.error, 'text-fail': this.error && this.error.type === 'fail' } } } }) </script>
-
陣列語法:當需要應用多個class時,給:class繫結一個陣列,應用一個class列表
<div id="app"> <div :class="[activeCls, errorCls]"></div> </div> <script> var app = new Vue({ el:'#app', data: { activeCls: 'active', errorCls: 'error' } }) </script>
class有多個條件時,可以在陣列語法中使用物件語法
<div id="app"> <div :class="[{ 'active': isActive }, errorCls]"></div> </div> <script> var app = new Vue({ el: '#app', data: { isActive: true, errorCls: 'error' } }) </script>
陣列語法也可以使用data,computed和methods三種方法,以計算屬性為例:
<div id="app"> <button :class="classes"></button> </div> <script> var app = new Vue({ el: '#app', data: { size: 'large', disabled:true }, computed: { classes: function () { return [ 'btn', { ['btn-' + this.size]: this.size !== '', } ]; } } }) </script>
-
本作品採用《CC 協議》,轉載必須註明作者和本文連結