如何将v-for循环的列表,动态的为每一项添加样式

3,113 阅读1分钟

项目中有时,会有将后来返回的数据列表循环渲染出来,并且为每一个列表添加不同的样式类名,从而现显示不同的如图片,颜色等,现在有两种方法如下:

  • 第一种通过 :class="statusIcon+item.type",将每一项动态添加类名,为其动态添加不同的背景图片,
 <view class="record" v-for="(item,index) in recordList" :key='index'>
    <view class="recordRight">
	<view class="statusIcon" :class="`statusIcon`+item.type"></view>
	    <view class="recordInfo">
		<view class="statusAndTime">
			<view class="status" v-cloak>{{item.title}}</view>
				<view class="time">{{item.date}}</view>
			</view>
			<view class="money" :class="[item.count > 0 ? 'status1' : 'statusStyle' ]" v-cloak>{{item.count|toFixed(2)}}</view>
		</view>
	</view>
</view>

recordList的数据结构如图:

样式代码如图:

  • 第二种:根据后台返回金额的正负,去动态为金额添加不同的颜色,如是整数为蓝色,负数为黑色
        注意:此时需求为两种状态,所以直接用三元
	<view class="money" :class="[item.count > 0 ? 'status1' : 'statusStyle' ]"

效果如图: