在vue 中,class 动态绑定是一个很常见的需求,平时的使用频率也很高,下面是总结的 class 绑定的几种写法。

154 阅读1分钟

对象写法

  1. 最简单的绑定
:class="{ 'active': isActive }"
  1. 判断是否绑定一个active
:class="{'active':isActive==-1}"  
或者
:class="{'active':isActive==index}"
  1. 绑定并判断多个
第一种(用逗号隔开)
:class="{ 'active': isActive, 'sort': isSort }"
 
 
第二种(放在data里面)
 
//也可以把后面绑定的对象写在一个变量放在data里面,可以变成下面这样
:class="classObject"
data() {
  return {
    classObject:{ active: true, sort:false }
  }
}
 
第三种(使用computed属性)
:class="classObject"
data() {
  return {
    isActive: true,
    isSort: false
  }
},
computed: {
  classObject: function () {
    return {
      active: this.isActive,
      sort:this.isSort
    }
  }
}

数组方法

  1. 单纯数组
:class="[isActive,isSort]"
data() {
  return{
    isActive:'active',
    isSort:'sort'
 }
}
  1. 数组与三元运算符结合判断选择需要的class

    注意:三元运算符后面的“:”两边的class需要加上单引号,否则不能正确渲染

:class="[isActive?'active':'']"
或者
:class="[isActive==1?'active':'']"
或者
:class="[isActive==index?'active':'']"
或者
:class="[isActive==index?'active':'otherActiveClass']"
  1. 数组对象结合动态判断
//前面这个active在对象里面可以不加单引号,后面这个sort要加单引号
:class="[{ active: isActive }, 'sort']"
或者
:class="[{ active: isActive==1 }, 'sort']"
或者
:class="[{ active: isActive==index }, 'sort']"

[相关链接](Vue之动态class的几种写法_D_jing20的博客-CSDN博客_vue 动态class)