class & style

在操作DOM的过程中,修改元素的class与内联样式是数据绑定的常见需求,我们可以使用v-bind处理它们,可以通过表达式计算结果,但是字符串的拼接比较麻烦还容易出错,对此vue做了一定的增强

<div class="static" v-bind:class={"active":isActive,"text-danger":hasError}></div>
vm.$data={
    isActive:ture,
    hasError:false
}
//最终的渲染结果
<div class="static active"></div>
  • 进一步的改进,将class整个对象在实例对象中声明,脱离DOM存在

<div class="static" v-bind:class="classObject"></div>
vm.$data.classObject={
    active:true,
    text-danger:false
}
  • 将class对象存储在计算属性中,这样就能根据数据特性进行计算得到最终要的class对象

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

2. 绑定到自定义组件上

3.绑定到内联样式上

Last updated

Was this helpful?