实现自定义通用表格组件

本文介绍了一种优化Vue组件的方法,通过在数据构造时将样式名作为属性,减少V-if判断,从而简化组件代码。例如,将状态信息转化为icon样式属性,如`icon-shibai`、`icon-wancheng`等,并结合CSS定义不同状态的颜色和图标,实现动态显示。这种方法提高了代码的简洁性和可维护性。
摘要由CSDN通过智能技术生成

今天写了个表格组件,一开始各种V-if判断,是文字还是icon之类的。然后想到一个好办法,组件代码瞬间减少了一堆。
传入数据的时候,是数组对象模式。关键在于构造数据的时候把数据想要的样式名记为属性名。
直接上组件代码,app上的,用view代替div,看思路:

	<view class="font-size-12">
		<view class="title">
			<view v-for="(item, key) in title" :class="key">{{item}}</view>
		</view>
		<view class="table-row" v-for="item in data">
			<view v-for="(cell, key) in item" :class="key">{{cell}}</view>
		</view>
	</view>

比如以下数据:
{state:0, startTime:‘2021-11-30 12:00:00’, number:‘15kWh’, wasteTime:‘12:15’},
{state:1, startTime:‘2021-11-30 12:00:00’, number:‘15kWh’, wasteTime:‘00:30’},
{state:2, startTime:‘2021-11-30 12:00:00’, number:’–’, wasteTime:’–’},
{state:1, startTime:‘2021-11-30 12:00:00’, number:‘15kWh’, wasteTime:‘02:13’},
转化成
{icon-shibai:‘’, startTime:‘2021-11-30 12:00:00’, number:‘15kWh’, wasteTime:‘12:15’},
{icon-wancheng:‘’, startTime:‘2021-11-30 12:00:00’, number:‘15kWh’, wasteTime:‘00:30’},
{icon-jinhangzhong:‘’, startTime:‘2021-11-30 12:00:00’, number:’–’, wasteTime:’–’},
{icon-jinhangzhong:‘’, startTime:‘2021-11-30 12:00:00’, number:‘15kWh’, wasteTime:‘02:13’},
这样直接做表格的时候,把属性名存为动态class,就行了,再把有些特殊的写进对应样式,比如iconfont的样式,直接写到icon-xxxx中:举例:

	.icon-shibai{
		color: #ff513a !important;
	}
	.icon-wancheng{
		color: #00F6FF !important;
	}
	.icon-jinhangzhong{
		color: #1D97FF !important;
	}
	.icon-shibai,
	.icon-wancheng,
	.icon-jinhangzhong{
		width: 32rpx;
		font-family: "iconfont" !important;
		font-size: 16px;
		font-style: normal;
		-webkit-font-smoothing: antialiased;
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值