Vue动态绑定Class的几种常用方式?

第一种:基础用法

Html部分:

<div :class="active">基本用法</div>

Js部分:

data() {
        return {
                active: 'active'
        }
}

第二种:三元运算绑定单个 / 数组形式绑定多个Class

Html部分:

<div :class="isBind ? 'active' : ''">三元运算</div>
<div :class="[isBind ? 'active' : '', active]">使用数组</div>

Js部分:

data() {
        return {
                isBind: false,
                active: 'active'
        }
}

第三种:计算属性绑定单个或多个Class

Html部分:

<div :class="classObject">使用计算属性</div>

Js部分:

data() {
        return {
                active: 'active',
                finishData: '2022-10-18 00:00:00'
        }
},

computed: {
        classObject() {
                return {
                        active: this.isBind,
                        'red-color': this.finishData != ''
                }
        }
}

第四种:使用函数绑定Class

Html部分:可自定义传参

div :class="bindClass(currDate,finishData)">函数绑定</div> 

Js部分:可处理复杂逻辑

data() {
        return {
                currDate: '2022-10-20 00:00:00',
                finishData: '2022-10-18 00:00:00'
        }
},

methods: {
        // 动态绑定Class
        bindClass(currDate,finishData){
                let classInfo = { redColor: false, active: true }
                if(new Date(finishData).getTime() > new Date(currDate).getTime()){
                        classInfo.redColor = true
                }
                return classInfo
        }
}

总结

原文地址:https://blog.csdn.net/mi_ni123/article/details/127422328