美文网首页
vue动态绑定class的几种方式

vue动态绑定class的几种方式

作者: woshishui1243 | 来源:发表于2020-03-10 12:17 被阅读0次

    对象方法
    -最简单的绑定(这里的active加不加单引号都可以,以下也一样都能渲染)

    :class="{ 'active': isActive }"
    

    判断是否绑定一个active

    :class="{'active':isActive==-1}"  
    

    或者

    :class="{'active':isActive==index}"
    

    绑定并判断多个
    第一种(用逗号隔开)

    :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
        }
      }
    }
    

    数组方法
    单纯数组

    :class="[isActive,isSort]"
    data() {
      return{
        isActive:'active',
        isSort:'sort'
     }
    }
    

    数组与三元运算符结合判断选择需要的class
    (注意:三元运算符后面的“:”两边的class需要加上单引号,否则不能正确渲染)

    :class="[isActive?'active':'']"
    

    或者

    :class="[isActive==1?'active':'']"
    

    或者

    :class="[isActive==index?'active':'']"
    

    或者

    :class="[isActive==index?'active':'otherActiveClass']"
    

    数组对象结合动态判断

    //前面这个active在对象里面可以不加单引号,后面这个sort要加单引号

    :class="[{ active: isActive }, 'sort']"
    

    或者

    :class="[{ active: isActive==1 }, 'sort']"
    

    或者

    :class="[{ active: isActive==index }, 'sort']"
    

    作者:前端来入坑
    链接:https://www.jianshu.com/p/45dbac5035e2
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:vue动态绑定class的几种方式

          本文链接:https://www.haomeiwen.com/subject/kphwdhtx.html