前端流行框架Vue3教程:6. Class绑定

6. Class绑定

数据绑定的一个常见需求场景是操纵元素的 CSS class 列表,因为 class 是 attribute,我们可以和其他attribute 一样使用 v-bind 将它们和动态的字符串绑定。但是,在处理比较复杂的绑定时,通过拼接生成字符串是麻烦且易出错的。因此,Vue 专门为 cass 的 v-bind 用法提供了特殊的功能增强。除了字符串外,表达的值也可以是对象或数组

(1)绑定对象

<script>
export default{
    data(){
        return{
          isActive:true,
          hasError:true,
           } 
        }    
}
</script>
<template>
<p :class="{'active':isActive,'text-danger':hasError}">Class样式绑定</p>
</template>

<style>
.active{
    font-size: 30px;
}
.text-danger{
    color:red;
}
</style>

(2)多个对象绑定

<script>
export default{
    data(){
        return{
          isActive:true,
          hasError:true,
            
          # 多个对象绑定
          classObjece:{
             active:true,
             'text-danger':false
          }
           } 
        }
       
}
</script>
<template>
<p :class="{'active':isActive,'text-danger':hasError}">Class样式绑定1</p>
<p :class="classObjece">Class样式绑定2</p>
</template>

<style>
.active{
    font-size: 30px;
}
.text-danger{
    color:red;
}
</style>

(3)绑定数组

<script>
export default{
    data(){
        return{
          isActive:true,
          hasError:true,
          classObjece:{
             active:true,
             'text-danger':false
          },
          arrActive:'active',
          arrHasError:'text-danger'
           } 
        }
    
    
}
</script>
<template>
<p :class="{'active':isActive,'text-danger':hasError}">Class样式绑定1</p>
<p :class="classObjece">Class样式绑定2</p>

# 绑定数组
<p :class="[arrActive,arrHasError]">Class样式绑定3</p>
</template>

<style>
.active{
    font-size: 30px;
}
.text-danger{
    color:red;
}
</style>

如果你也想在数组中有条件地渲染某个 class,你可以使用三元表达式

<p :class="[isActive ? 'active' : '']">Class样式绑定4</p>

(4)数组和对象

温馨提示
数组和对象嵌套过程中,只能是数组嵌套对象,不能反其道而行

<p :class="[isActive ? 'active' : '', { 'text-danger': hasError }]">Class样式绑定5</p>

(5)style绑定

同理,style也可以类似绑定

<script>
export default {
    data(){
        return {
            ColorObjet:{
                color:'red',
                fontSize:60+'px'
            }

        }
    },

}
</script>
<template>
    <p :style="ColorObjet">Style样式绑定1</p>
</template>
原文链接:,转发请注明来源!