Vue中class与style的绑定

2018-08-24  本文已影响0人  KazmaU

1、对象形式绑定

   v-bind:class="{active:isActive}"  // isActive为data中的数据
   v-bind:class="classObject"

对应的data如下:

   data:{
       classObject: {
          active: true,
          'text-danger': false
       }
   }

可以使用computed返回对象的计算属性,绑定到class

   data:{
       isActive: true,
       error: null
   },
   computed: {
      classObject: function () {
         return {
            active: this.isActive && !this.error,
            'text-danger': this.error && this.error.type === 'fatal'
         }
      }
   }

2、数组形式绑定

   v-bind:class="[activeClass,errClass]"

对应的data如下:

   data:{
       activeClass: 'active',
       errorClass: 'text-danger'
   }

3、可以在class中使用三元表达式

   v-bind:class="[isActive ? activeClass : '', errorClass]"
   v-bind:class="[{ active: isActive }, errorClass]"

4、用在组件上

当在一个自定义组件上使用 class 属性时,这些类将被添加到该组件的根元素上面。这个元素上已经存在的类不会被覆盖。

5、style的绑定

style与class类似,style可以绑定一个包含多值得数组

   <div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>

这样写只会渲染数组中最后一个被浏览器支持的值。在本例中,如果浏览器支持不带浏览器前缀的 flexbox,那么就只会渲染 display: flex。

上一篇下一篇

猜你喜欢

热点阅读