你期待的微信小程序表格组件来啦

简介: 背景:在做H5开发中表格table是最常见的标签,如此好用的标签在微信小程序中却没有

功能


主要用于展示大量结构化数据。


支持分页、自定义操作、长,宽表格滚动等功能。


实现


前言


  • 暴露必要属性例如表头,数据。


  • 支持外部样式控制表格。


  • 手机端的列表较轻暂时不需要暴露事件。


细节



Component({
  properties: {
       list: {  // 表格数据
      type: Array,
      value: []
    },
    headers: {  //表头
      type: Array,
      value: []
    },
    hasBorder: {  // 表格中间边框
      type: String,
      value: "no"
    },
      height: { //table的高度
      type: Number || String,
      value: ''
    },
    width: {
      type: Number,
      value: 0
    },
    tdWidth: {
      type: Number,
      value: 35
    }
  }
})



/*
s-class-header // 外部定义表头样式
s-class-row  // 外部定义行数据样式
*/
Component({
  externalClasses: ['s-class-header', 's-class-row']
})


  • index.wxml文件通过嵌套循环动态渲染表格


<view class="table table-noborder">
    <view class="tr thead s-class-header">
      <view wx:for="{{headers}}" class="td td-{{hasBorder}}border">{{item.display}}</view>
    </view>
    <block wx:for-item='i' wx:for="{{list}}">
      <view class="tr s-class-row">
        <view wx:for-item='j' wx:for="{{headers}}" class="td td-{{hasBorder}}border">{{i[j['text']]}}</view>        
      </view>
    </block>
  </view>


  • index.wxss 使用者对于很个性的样式可以自行修改源代码index.wxss文件


.table {
  border: 1px solid #ccc;
  font-size: 28rpx;
  background: #fff;  
  border-right:none;
}
.table-noborder {
  border-right:1rpx solid #ccc;
}
.tr{
  display: flex;
}
.td {
  text-align: center;
  border: 1px solid #ccc;
  display: inline-block;  
  border-bottom: none;
  flex: 1;
  padding: 16rpx;  
  border-left: none;
}
.td-noborder{  
  border-right: none;
}
.thead .td{
  border-top: none;
  padding: 16rpx;
  font-weight: bold;
}


快速上手


.json文件引入组件


{
  "usingComponents": {
    "s-table": "实际路径/table/index"
  }
}


index.wxml 文件使用组件


<s-table hasBorder='no' width='200' tdWidth='100' height='200' s-class-header='my-class' s-class-row='my-class-row' headers='{{headers}}' list='{{row}}'></s-table>


完整源代码和使用说明见github


github地址


相关文章
|
2天前
|
小程序 JavaScript
微信小程序之input组件及其获取用户输入信息
微信小程序之input组件及其获取用户输入信息
7 1
|
17天前
|
小程序 容器
微信小程序常用组件的简单使用 view,scroll-view,swiper,swiper-item,text,rich-text,button,image
本文介绍了微信小程序中常用组件的使用方法,包括view、scroll-view、swiper与swiper-item、text与rich-text、button以及image组件。详细解释了各组件的功能、属性以及如何在小程序页面中进行使用。
微信小程序常用组件的简单使用 view,scroll-view,swiper,swiper-item,text,rich-text,button,image
|
2天前
|
小程序 前端开发 JavaScript
小程序入门之认识view和text组件
小程序入门之认识view和text组件
11 0
|
2月前
|
JSON 小程序 前端开发
终于搞懂了!微信小程序的渲染机制及组件使用
【8月更文挑战第8天】微信小程序的渲染机制及组件使用
111 3
终于搞懂了!微信小程序的渲染机制及组件使用
|
2月前
|
人工智能 小程序 编译器
Ant Design Mini 问题之Antd Mini 使用小程序函数式组件(functional-mini)来确保组件逻辑适配到双端,如何实现
Ant Design Mini 问题之Antd Mini 使用小程序函数式组件(functional-mini)来确保组件逻辑适配到双端,如何实现
|
2月前
|
小程序 前端开发 API
Ant Design Mini 问题之在微信小程序中,由于不支持slot特性,Ant Design Mini的什么组件功能受到了限制,如何解决
Ant Design Mini 问题之在微信小程序中,由于不支持slot特性,Ant Design Mini的什么组件功能受到了限制,如何解决
|
2月前
|
小程序
|
3月前
|
小程序
跨端技术问题之页面或组件样式在小程序、小程序插件和小程序分包中有什么差异
跨端技术问题之页面或组件样式在小程序、小程序插件和小程序分包中有什么差异
|
3月前
|
小程序
【微信小程序-原生开发】列表 - 拖拽排序(官方组件 movable-area 和 movable-view 的用法)
【微信小程序-原生开发】列表 - 拖拽排序(官方组件 movable-area 和 movable-view 的用法)
284 0
|
6天前
|
小程序 前端开发 测试技术
微信小程序的开发完整流程是什么?
微信小程序的开发完整流程是什么?
35 7