2 回复
没有回复居然,这个需求项目上应该比较多才对啊。
在uni-app中,虽然原生组件库并未直接提供一个高度封装的表格(table)组件,但我们可以通过自定义组件或使用第三方插件来实现表格功能。以下是一个简单的表格组件实现示例,基于Vue 3和uni-app框架。
首先,创建一个自定义的表格组件MyTable.vue
:
<template>
<view class="table">
<view class="thead">
<view v-for="(header, index) in headers" :key="index" class="th">{{ header }}</view>
</view>
<view class="tbody">
<view v-for="(row, rowIndex) in data" :key="rowIndex" class="tr">
<view v-for="(cell, cellIndex) in row" :key="cellIndex" class="td">{{ cell }}</view>
</view>
</view>
</view>
</template>
<script>
export default {
name: 'MyTable',
props: {
headers: {
type: Array,
required: true
},
data: {
type: Array,
required: true
}
}
}
</script>
<style scoped>
.table {
width: 100%;
border-collapse: collapse;
}
.thead {
background-color: #f2f2f2;
}
.th, .td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
.tr:nth-child(even) {
background-color: #f9f9f9;
}
</style>
然后,在你的页面中使用这个表格组件,例如在index.vue
中:
<template>
<view>
<MyTable :headers="headers" :data="tableData" />
</view>
</template>
<script>
import MyTable from '@/components/MyTable.vue';
export default {
components: {
MyTable
},
data() {
return {
headers: ['Name', 'Age', 'City'],
tableData: [
['Alice', 25, 'New York'],
['Bob', 30, 'Los Angeles'],
['Charlie', 35, 'Chicago']
]
}
}
}
</script>
这个示例展示了如何创建一个简单的表格组件,并通过props传递表头和表格数据。你可以根据需要进一步扩展这个组件,比如添加排序、筛选等功能。
请注意,这个示例使用了基础的Vue和uni-app语法,未涉及到复杂的样式调整或性能优化。在实际项目中,你可能需要根据具体需求调整样式,或者引入更强大的表格库来满足复杂场景的需求。