最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue綁定class的三種方法

 更新時間:2020年12月24日 08:52:20   作者:小清秋  
這篇文章主要介紹了vue綁定class的三種方法,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下

一、對象語法

1、給v-bind:class 設(shè)置一個對象,可以動態(tài)地切換class,例如:

<div id="app">
  <div :class="{'active':isActive}"></div>
</div>
<script>
var app = new Vue({
  el:'#app',
  data:{
    isActive:true
  }
})
</script>

最終渲染結(jié)果:

<div class="active"></div>

2、對象中也可以傳入多個屬性,來動態(tài)切換class。另外,:class可以與普通class共存,例如:

<div id="app">
  <div class="static" :class="{'active':isActive,'error':isError}"></div>
</div>
<script>
var app = new Vue({
  el:'#app',
  data:{
    isActive:true,
    isError:false
  }
})
</script>

最終渲染結(jié)果(當(dāng)數(shù)據(jù)isActive或isError變化時,對應(yīng)的class也會更新):

<div class="static active"></div>

3、當(dāng):class的表達(dá)式過長或邏輯復(fù)雜時,還可以綁定一個計算屬性,這是一種友好和常見的用法,一般當(dāng)條件多于兩個時,都可以使用data或者computed,例如:

<div id="app">
  <div :class="classes"></div>
</div>
<script>
var app = new Vue({
  el:'#app',
  data:{
    isActive:true,
    isError:null
  },
  computed:{
    classes(){
      return {
        active:this.isActive && !this.error,
        'text-fail':this.error && this.error.type ==='fail'
      }
    }
  }
})
</script>

除了計算屬性,也可以直接綁定一個Object類型的數(shù)據(jù),或者使用類似計算屬性的methods.

二、數(shù)組語法

1、當(dāng)需要應(yīng)用多個class時,可以使用數(shù)組語法,給:class綁定一個數(shù)組,應(yīng)用一個class列表:

<div id="app">
  <div :class="[atvieCls,errorCls]"></div>
</div>
<script>
var app = new Vue({
  el:'#app',
  data:{
    atvieCls:'active',
    errorCls:'error'
  }
})
</script>

渲染后的結(jié)果為:

<div class="active error"></div>

2、使用三元表達(dá)式,根據(jù)條件切換class(當(dāng)數(shù)據(jù)isActive為真時,樣式active才會被應(yīng)用):

<div id="app">
  <div :class="[isActive ? activeCls : '',errorCls]"></div>
</div>
<script>
var app = new Vue({
  el:'#app',
  data:{
    isActive:true,
    atvieCls:'active',
    errorCls:'error'
  }
})
</script>

渲染后的結(jié)果為:

<div class="active error"></div>

3、class有多個條件時,這樣寫較為煩瑣,可以在數(shù)組語法中使用對象語法:

<div id="app">
  <div :class="[{'active':isActive},errorCls]"></div>
</div>
<script>
var app = new Vue({
  el:'#app',
  data:{
    isActive:true,
    errorCls:'error'
  }
})
</script>

4、與對象語法一樣,也可以使用data、computed、method三種方法,以計算屬性為例:

<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!=='',
            ['btn-disabled']: this.disabled,
          }
        ]
      }
    }
  })
</script>

渲染后的結(jié)果為:

<div class="btn btn-large btn-disabled"></div>

以上,樣式btn會始終應(yīng)用,當(dāng)數(shù)據(jù)size不為空時,會應(yīng)用樣式前綴btn-,后加size的值;當(dāng)數(shù)據(jù)disabled為真時,會應(yīng)用樣式btn-disabled.

使用計算屬性給元素動態(tài)設(shè)置類名,在業(yè)務(wù)中經(jīng)常用到,尤其是在寫復(fù)用的組件時,所以在開發(fā)過程中,如果表達(dá)式較長或邏輯復(fù)雜,應(yīng)該盡可能優(yōu)先使用計算屬性。

三、在組件上使用

 如果直接在自定義組件上使用class或:class,樣式規(guī)則會直接應(yīng)用到這個組件的根元素上,例如聲明一個簡單的組件:

<script>
  Vue.component('my-component', {
    template: '<p class="article">一些文本</p>'
  })
</script>

然后在調(diào)用該組件時,使用對象語法或數(shù)組語法給組件綁定class,以對象語法為例:

<div id="app">
  <my-component :class="'active':isActive"></my-component>
</div>
<script>
  var app = new Vue({
    el: '#app',
    data: {
      isActive: true
    }
  })
</script>

最終組件渲染后的結(jié)果為:

<p class="article active">一些文本</p>

這種方法僅適用于自定義組件的最外層是一個根元素,否則會無效,當(dāng)不滿足這種條件或需要給具體的子元素設(shè)置類名時,應(yīng)當(dāng)使用組件的 props 來傳遞。

以上就是vue綁定class的三種方法的詳細(xì)內(nèi)容,更多關(guān)于vue綁定class的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

龙里县| 罗定市| 保德县| 西昌市| 揭西县| 福州市| 方山县| 眉山市| 磐安县| 磐石市| 宁南县| 土默特左旗| 行唐县| 北安市| 潍坊市| 铜山县| 昆明市| 灌南县| 白玉县| 武穴市| 水城县| 凤台县| 永昌县| 长泰县| 晋江市| 武威市| 阜康市| 三穗县| 上林县| 江北区| 静宁县| 东乡| 内乡县| 浦江县| 九龙县| 连平县| 满城县| 资阳市| 五大连池市| 惠水县| 金塔县|