美文网首页
2018-03-23

2018-03-23

作者: 小熊530 | 来源:发表于2018-03-23 21:29 被阅读0次

    今天继续昨天为弄完:class与style绑定

    数组语法

    :class除了可以绑定一个对象,也可以绑定数组

    <div :class="[activeClass, errorClass]"> </div>
    
    data {
      activeClass: 'active',
      errorClass: 'text-danger'
    }
    

    与对象语法不同的是,数组语法绑定在data中的值将直接被渲染。
    上面的例子就直接渲染为:

    <div class="active text-danger"></div>
    

    在实际运用中我们会遇到class的某个属性需要动态切换,而另一个属性不需要切换,直接渲染。可以有两种方式:
    三元表达式:

    <div v-bind:class="[isActive ? activeClass : '', errorClass]"></div>
    

    逗号后面的将直接被渲染,而前面的表达式,将进行判断。这种方式适用于比较class绑定的值最多为三个。

    数组中嵌套对象:

    <div v-bind:class="[{ active: isActive }, errorClass]"></div>
    

    这种中方式在class的值比较多也比较适用。对象语法依然按照对象语法的使用方式,只不过外层包裹了数组,所以逗号后面的值将一直被渲染。
    那么假如如果绑定多个:

    <div v-bind:class="[{ active: isActive,'text-danger': hasError, title: istitle  }, errorClass]"></div>
    

    我们是不是依然可以改写为:

    <div v-bind:class="[{ classObject }, errorClass]"></div>data: {
      isActive: true,
      error: null
    },
    computed: {
      classObject() {
        return {
          active: this.isActive && !this.error,
          'text-danger': this.error && this.error.type === 'fatal',
        }
      }
    }
    

    这个是不是可以,以后可以试一试,

    今天容我浪一浪,明天好好学习~~祝你玩的开心。替我向你家“老大“”问好~~

    相关文章

      网友评论

          本文标题:2018-03-23

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