当前位置:首页 > uni-app

uniapp实现表格

2026-03-04 22:21:02uni-app

uniapp实现表格的方法

使用<table>标签

在uniapp中可以直接使用HTML的<table>标签实现基础表格。注意样式需通过内联或全局CSS调整,因部分小程序平台对HTML标签支持有限。

<view class="table-container">
  <table>
    <tr>
      <th>姓名</th>
      <th>年龄</th>
    </tr>
    <tr>
      <td>张三</td>
      <td>25</td>
    </tr>
  </table>
</view>
.table-container table {
  width: 100%;
  border-collapse: collapse;
}
.table-container th, .table-container td {
  border: 1px solid #ddd;
  padding: 8px;
  text-align: center;
}

使用<uni-table>组件(H5端)

H5端可使用官方扩展组件uni-table,需先安装@dcloudio/uni-ui

npm install @dcloudio/uni-ui
<template>
  <uni-table>
    <uni-tr>
      <uni-th>姓名</uni-th>
      <uni-th>年龄</uni-th>
    </uni-tr>
    <uni-tr>
      <uni-td>李四</uni-td>
      <uni-td>28</uni-td>
    </uni-tr>
  </uni-table>
</template>
<script>
  import { UniTable, UniTr, UniTh, UniTd } from '@dcloudio/uni-ui'
  export default {
    components: { UniTable, UniTr, UniTh, UniTd }
  }
</script>

使用<view>模拟表格

跨平台兼容性更好的方案是用flex布局模拟表格:

<view class="table">
  <view class="row header">
    <view class="cell">ID</view>
    <view class="cell">名称</view>
  </view>
  <view class="row" v-for="item in list" :key="item.id">
    <view class="cell">{{ item.id }}</view>
    <view class="cell">{{ item.name }}</view>
  </view>
</view>
.table {
  width: 100%;
}
.row {
  display: flex;
  border-bottom: 1px solid #eee;
}
.header {
  font-weight: bold;
  background-color: #f5f5f5;
}
.cell {
  flex: 1;
  padding: 10px;
  text-align: center;
}

动态数据绑定

结合Vue的数据绑定实现动态表格:

export default {
  data() {
    return {
      tableData: [
        { id: 1, name: '商品A', price: 99 },
        { id: 2, name: '商品B', price: 199 }
      ]
    }
  }
}
<view class="table">
  <view class="row header">
    <view class="cell">ID</view>
    <view class="cell">名称</view>
    <view class="cell">价格</view>
  </view>
  <view class="row" v-for="item in tableData" :key="item.id">
    <view class="cell">{{ item.id }}</view>
    <view class="cell">{{ item.name }}</view>
    <view class="cell">¥{{ item.price }}</view>
  </view>
</view>

第三方组件库

可选用第三方UI库如uView的表格组件:

uniapp实现表格

<u-table :columns="columns" :list="dataList"></u-table>
export default {
  data() {
    return {
      columns: [
        { title: '姓名', key: 'name' },
        { title: '分数', key: 'score' }
      ],
      dataList: [
        { name: '王五', score: 90 },
        { name: '赵六', score: 85 }
      ]
    }
  }
}

注意事项

  1. 小程序平台对<table>标签支持不完整,推荐使用<view>模拟方案
  2. 大数据量列表应使用<scroll-view>包裹防止渲染性能问题
  3. 复杂交互表格建议封装成单独组件
  4. 各端样式可能存在差异,需通过条件编译调整

标签: 表格uniapp
分享给朋友:

相关文章

vue实现表格读取数据

vue实现表格读取数据

Vue 实现表格数据读取 在 Vue 中实现表格数据读取通常涉及以下关键步骤: 数据绑定与表格渲染 通过 v-for 指令动态渲染表格行,数据通常存储在组件的 data 或 Vuex 状态中:…

css好看的表格制作

css好看的表格制作

使用CSS制作美观表格的方法 边框与间距优化 通过border-collapse属性合并边框,避免双边框效果。设置padding增加单元格内边距,提升可读性。 table { border-…

uniapp实现支付功能

uniapp实现支付功能

支付功能实现概述 在UniApp中实现支付功能通常需要对接第三方支付平台(如微信支付、支付宝支付等)。以下是基于微信支付和支付宝支付的通用实现流程。 微信支付实现步骤 1. 配置支付权限 在微信开放…

uniapp请求超时处理

uniapp请求超时处理

uniapp请求超时处理方法 在uniapp中处理请求超时可以通过多种方式实现,以下是几种常见的处理策略: 设置全局请求超时时间 在main.js中配置全局请求超时时间,适用于所有请求: uni…

uniapp关闭侧滑

uniapp关闭侧滑

禁用全局侧滑返回功能 在pages.json中配置全局禁止侧滑返回: { "globalStyle": { "popGesture": "none" } } 禁用单个页面侧滑返回 在…

uniapp中如何使用iconfont

uniapp中如何使用iconfont

使用 Iconfont 在 Uniapp 中的步骤 下载 Iconfont 资源 访问 Iconfont 官网,选择需要的图标并添加到项目。下载时选择 Font class 格式,解压后会得到 .tt…