vue中用数组语法绑定class

简单的绑定class就不说了,它可以和对象语法一样,使用data、computed、methods三种方法。说一下我在工作里体会到这种作法的好处。那么直接上代码。。。咔咔咔

说下需求,我是做一个显示框,当status为1时,代表成功状态,这个时候显示成功图片;当status为0时,代表失败状态,这个时候显示失败图片。我一开始的做法呢是使用v-if,这会才上代码看看,咳、咳

<div v-if="status===0">
      <img src="../images/failed.png" class="imgIcon">
</div>
 <div v-else>
      <img src="../images/success.png" class="imgIcon">
</div>

 这样子做呢,也不是不行哈,换个思路用绑定class写

   html:

<div :class="classes"></div>

 js:

computed: {
      classes () {
           return [
               'imgIcon',
                {
                     ['imgIcon-' + this.status]: this.status !== ''
                }
            ]
      }
}

 css:

.imgIcon{
    width: 2.6rem;
    height: 2.6rem;
    margin: auto 0;
}
.imgIcon-1{
    background: url(../assets/images/success.png) no-repeat center/cover;    
}
.imgIcon-0{
    background: url(../assets/images/failed.png) no-repeat center/cover;
}

 

后来想了想,就替换img标签里src的值也可以

   html

<img :src="imgName" class="imgIcon">

 js

computed: {
       imgName () {
            return this.status ? "../images/success.png": "../images/success.png"
     }
}  

 不过这里要特别注意一下图片的路径问题哦,不然可能不显示。

 

以上呢,是我工作中遇到的问题,可能解决思路不是很好,做个记录。

 

 

转载于:https://www.cnblogs.com/ddkei/p/9362151.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值