帮我优化一下代码<uni-table border stripe emptyText="暂无更多数据"> <!-- 表头行 --> <uni-tr> <uni-th align="center">号码/姓名</uni-th> <uni-th align="center">项目</uni-th> <uni-th align="center">诊室</uni-th> <uni-th align="center">状态</uni-th> </uni-tr> <!-- 表格数据行 --> <uni-tr v-for="item in Now" :key="item.id" v-if="item.calltime>timenow && item.part === 0"> <uni-td align="center">{{ item.num }} {{ item.name }}</uni-td> <uni-td align="center">小部位-激光脱毛</uni-td> <uni-td align="center">{{ item.room }}号诊室</uni-td> <uni-td align="center">已叫号</uni-td> </uni-tr> <uni-tr v-for="item in Now" :key="item.id" v-if="item.calltime==null && item.part === 0"> <uni-td align="center">{{ item.num }} {{ item.name }}</uni-td> <uni-td align="center">小部位-激光脱毛</uni-td> <uni-td align="center">---</uni-td> <uni-td align="center">等待中</uni-td> </uni-tr> <uni-tr v-for="item in smallNull" :key="item"> <uni-td align="center">---</uni-td> <uni-td align="center">---</uni-td> <uni-td align="center">---</uni-td> <uni-td align="center">---</uni-td> </uni-tr> </uni-table>
时间: 2024-04-26 19:01:52 浏览: 198
可以尝试进行以下优化:
1. 将重复的代码提取出来,使用函数进行封装,减少代码冗余。
2. 将v-if中的判断逻辑简化,可以使用三目运算符来替代。
3. 如果数据量很大,可以考虑使用虚拟滚动等技术进行性能优化。
修改后的代码如下:
```
<uni-table border stripe emptyText="暂无更多数据">
<!-- 表头行 -->
<uni-tr>
<uni-th align="center">号码/姓名</uni-th>
<uni-th align="center">项目</uni-th>
<uni-th align="center">诊室</uni-th>
<uni-th align="center">状态</uni-th>
</uni-tr>
<!-- 表格数据行 -->
<template v-for="item in Now">
<template v-if="item.part === 0">
<uni-tr :key="item.id">
<uni-td align="center">{{ item.num }} {{ item.name }}</uni-td>
<uni-td align="center">小部位-激光脱毛</uni-td>
<uni-td align="center">{{ item.calltime ? item.room + '号诊室' : '---' }}</uni-td>
<uni-td align="center">{{ item.calltime ? '已叫号' : '等待中' }}</uni-td>
</uni-tr>
</template>
</template>
<!-- 空行 -->
<template v-for="item in smallNull">
<uni-tr :key="item">
<uni-td align="center">---</uni-td>
<uni-td align="center">---</uni-td>
<uni-td align="center">---</uni-td>
<uni-td align="center">---</uni-td>
</uni-tr>
</template>
</uni-table>
<script>
export default {
data() {
return {
Now: [],
smallNull: []
}
},
methods: {
// 将重复的代码提取出来,使用函数进行封装
getSmallNull() {
const len = 10 - this.Now.length
const arr = new Array(len > 0 ? len : 0).fill('')
this.smallNull = [...arr]
}
},
watch: {
Now: {
handler() {
this.getSmallNull()
},
immediate: true
}
}
}
</script>
```
阅读全文