vue 三元表达式class、图片切换 (涉及计算属性)
2016-12-30 10:25
686 查看
方法一:先上代码
<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
}
}
简单介绍下计算属性
<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可以做一些监控之类的效果。
相关文章推荐
- Vue------第二天(计算属性、侦听器、绑定Class、绑定Style)
- 【Vue】-(5) 计算属性与class,style绑定
- Vue中计算属性与class,style绑定
- vue系列---三元表达式和if进行页面的切换
- Vue.js笔记-计算属性 class与style绑定
- vue.js 计算属性$watch
- Vue.js基本规则提炼总结及计算属性学习
- Vue 计算属性
- 自定义属性之图片切换实例——初始化——JS学习笔记2015-5-28(第41天)
- Vue.js学习 Item5 -- 计算属性computed与$watch
- vue.js计算属性
- VS2010打开工程.csproj文件报错:无法计算“...”处的属性表达式“$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExte
- Vue.js每天必学之计算属性computed与$watch
- 网站制作一 : 从简单做起,通过a属性实现导航图片切换
- Vue.js的计算属性
- vue.js计算属性setter
- Vuejs——(3)计算属性,样式和类绑定
- 正则表达式匹配html class属性
- Vue.js计算属性
- [妙味JS基础]第一课:属性操作、图片切换、短信发送模拟