有学有练才叫学习:学而不思则罔,思而不学则殆:学而不习,纸上谈兵,习而不进,画地为牢!

vue动态添加class(vue动态添加class)实现方式

vue 炮渣日记 3周前 (11-19) 20次浏览 已收录 0个评论 扫描二维码

对象方法

最简单的绑定

这里的active加不加单引号都可以,以下也一样都能渲染,但是如果你的class需要 – 连接的,必须用引号。

:class="{ active: isActive }"
:class="{ 'c-active': isActive }"

判断是否绑定一个active

:class="{'active':isActive==-1}" 
或者
:class="{'active':isActive==index}"

绑定并判断多个

第一种(用逗号隔开)

:class="{ 'active': isActive, 'sort': isSort }"

第二种(放在data里面)

也可以把后面绑定的对象写在一个变量放在data里面,可以变成下面这样

:class="classObject"
data() {
 return {
 classObject:{ active: true, sort:false }
 }
}

第三种(使用computed属性)

:class="classObject"
data() {
 return {
 isActive: true,
 isSort: false
 }
},
computed: {
 classObject: function () {
 return {
 active: this.isActive,
 sort:this.isSort
 }
 }
}

数组方法

单纯数组

:class="[isActive,isSort]"
data() {
 return{
 isActive:'active',
 isSort:'sort'
 }
}

数组与三元运算符结合判断选择需要的class

注意:三元运算符后面的“:”两边的class需要加上单引号,否则不能正确渲染

:class="[isActive?'active':'']"
或者
:class="[isActive==1?'active':'']"
或者
:class="[isActive==index?'active':'']"
或者
:class="[isActive==index?'active':'otherActiveClass']"

数组对象结合动态判断

前面这个active在对象里面可以不加单引号,后面这个sort要加单引号

:class="[{ active: isActive }, 'sort']"
或者
:class="[{ active: isActive==1 }, 'sort']"
或者
:class="[{ active: isActive==index }, 'sort']"
喜欢 (0)
炮渣日记
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址