uni-app 表格插件需求 看了这么多人要表格 就没哪位老哥写个表格 几行几列展示信息吗

发布于 1周前 作者 caililin 来自 Uni-App

uni-app 表格插件需求 看了这么多人要表格 就没哪位老哥写个表格 几行几列展示信息吗

1 回复

uni-app 中实现一个简单的表格插件,可以通过自定义组件和使用 Flex 布局或者 CSS Grid 布局来实现。下面是一个基本的表格组件示例,展示了如何创建一个几行几列的表格,并展示一些信息。

首先,我们创建一个自定义组件 MyTable.vue

<template>
  <view class="table-container">
    <view class="table-header">
      <view v-for="(header, index) in headers" :key="index" class="table-cell">{{ header }}</view>
    </view>
    <view class="table-body">
      <view v-for="(row, rowIndex) in rows" :key="rowIndex" class="table-row">
        <view v-for="(cell, cellIndex) in row" :key="cellIndex" class="table-cell">{{ cell }}</view>
      </view>
    </view>
  </view>
</template>

<script>
export default {
  props: {
    headers: {
      type: Array,
      required: true
    },
    rows: {
      type: Array,
      required: true
    }
  }
}
</script>

<style scoped>
.table-container {
  width: 100%;
  border: 1px solid #ddd;
}
.table-header {
  display: flex;
  background-color: #f2f2f2;
}
.table-body {
  display: flex;
  flex-direction: column;
}
.table-row {
  display: flex;
}
.table-cell {
  flex: 1;
  padding: 10px;
  border-bottom: 1px solid #ddd;
  border-right: 1px solid #ddd;
  box-sizing: border-box;
  text-align: center;
}
.table-row:last-child .table-cell {
  border-bottom: none;
}
.table-cell:last-child {
  border-right: none;
}
</style>

然后,在需要使用表格的页面中引入这个组件,并传递数据:

<template>
  <view>
    <MyTable :headers="headers" :rows="rows" />
  </view>
</template>

<script>
import MyTable from '@/components/MyTable.vue';

export default {
  components: {
    MyTable
  },
  data() {
    return {
      headers: ['Name', 'Age', 'Gender'],
      rows: [
        ['Alice', 25, 'Female'],
        ['Bob', 30, 'Male'],
        ['Charlie', 28, 'Male']
      ]
    }
  }
}
</script>

这个示例展示了如何使用 uni-app 创建一个简单的表格组件,并通过 props 传递表头和行数据。表格组件使用了 Flex 布局来创建表头和表格体,每个单元格都通过 flex: 1 来确保它们均匀分布宽度。此外,还添加了简单的样式来定义边框和内边距,使表格更加美观。这个示例可以根据需要进行扩展,例如添加排序、筛选等功能。

回到顶部