vue 三元表达式class、图片切换 (涉及计算属性)

vue 三元表达式class、图片切换 (涉及计算属性)


方法一:先上代码

      <div class="card-titlefalse" v-if="!enableBicycle(bicycle)">
        {{bicycle.title}}
       </div>

             <div class="card-title" v-if="enableBicycle(bicycle)">

        {{bicycle.title}}
        </div>

浅显易懂 ,却有代码冗余之嫌;

方法二: //class自行选择切换 如果enableBicycle(bicycle) 为真  class为'card-title‘ 否则为card-titlefalse

 <div :class="enableBicycle(bicycle) ? 'card-title' : 'card-titlefalse' " >
        {{bicycle.title}}
      </div>

//div里有  img的情况

<div :class="enableBicycle(bicycle) ? 'card-info' : 'card-infofalse'" >
        <img :src="enableBicycle(bicycle) ? '/static/icons/blueCall.png' : '/static/icons/grayCall.png'" height="10px"></img> {{bicycle.power}}%
        <img :src="enableBicycle(bicycle) ? '/static/icons/preload.png' : '/static/icons/load.png'" height="10px"></img> {{distance}} 米
      </div>

注意 这种方式 图片需放在static下   至于原因  初步理解是别的目录会被打包,打包后是不存在的。

方法三:<div class="card-title" :class="{'text-disable': !enabledBicycle}" >
        {{bicycle.title}}
           </div>

.text-disable {
    color: pink; 
  }

//div里有  img的情况

预先将图片以此类方式引入

 import powerIconEnable from 'assets/icons/blueCall.png'
  import powerIconDisable from 'assets/icons/grayCall.png'
  import distanceIconEnable from 'assets/icons/preload.png'
  import distanceIconDisable from 'assets/icons/load.png'
  import rentIconEnable from 'assets/icons/rentCarBlue.png'
  import rentIconDisable from 'assets/icons/rentCarGray.png'

<template>

<div class="card-Info" :class="{'text-disable': !enabledBicycle}">
        <img :src="powerIcon" height="10px"></img> {{bicycle.power}}%
        <img :src="distanceIcon" height="10px"></img> {{distance}} 米
      </div>

</template>

   js部分

 computed: {
      enabledBicycle () {
        return this.bicycle.state === 'ready' && this.bicycle.power > 20
      },
     
      powerIcon () {
        return this.enabledBicycle ? powerIconEnable : powerIconDisable
      },
      distanceIcon () {
        return this.enabledBicycle ? distanceIconEnable : distanceIconDisable
      },
      rentIcon () {
        return this.enabledBicycle ? rentIconEnable : rentIconDisable
      }
    }

简单介绍下计算属性

Vue中computed就是 实时计算 使用。
Vue检测到数据发生变动时就会执行对相应数据有引用的函数。
利用computed可以做一些监控之类的效果。


















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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值