微信小程序简易table组件实现

前提:微信小程序自1.6.3基础库版本库开始支持简洁组件,之前的版本因不支持,故在引用组件处默认为空节点。关于微信小程序已有模板为何还需构建组件?一是因为组件可以更方便的自定义并绑定行为,二是在其他页面引用时,无需通过import,只需在该页面json文件下配置usingComponents属性即可。(原本想在app.json文件里配置这个属性,从此一劳永逸,但目前貌似还不支持,至少我尝试的时候还不行-.-)

思路:主要是将table的head和tbody部分的数据抽象出来,使之只需要传值就可直接引用(如果用过react、vue等框架,微信小程序组件上手起来会更快,无非就是多了一丢丢配置而已)。

1、首先我们先来搭好table组件的页面布局:

<view class="table-outer-box">

<view class="table table-theme table-flex">

<view class="item" wx:for="{{tableThemes}}" wx:key="{{index}}">{{item}}</view>

</view>

<scroll-view class="scroll-view flex-column" scroll-y="true" bindscrolltolower="loadMore">

<view class="table table-item table-flex" wx:for="{{tableItems}}" wx:key="{{index}}">

<view class="item" wx:for="{{item}}" wx:key="{{index}}">{{item}}</view>

</view>

</scroll-view>

</view>

2、接着我们再来填充table样式:

.table-outer-box {

display: flex;

flex-direction: column;

padding: 50rpx 50rpx 0;

flex: 1;

}

.table {

height: 80rpx;

color: #fff;

line-height: 80rpx;

border-top: 1rpx solid #5f677a;

border-bottom: 1rpx solid #5f677a;

text-align: center;

}

.table-flex {

display: flex;

}

.table-theme {

font-size: 28rpx;

}

.table-item {

font-size: 24rpx;

opacity: 0.6;

}

.item {

white-space: nowrap;

text-overflow: ellipsis;

overflow: hidden;

flex: 1;

}

.scroll-view {

flex: 1;

}

3、接下来,我们到组件json文件里设置component属性为true

{

"component": true

}

4、紧接着,我们到组件js里注册该组件:

Component({

properties: {

tableThemes: {

type: Object, // 因此处的thead是json格式,故将数据类型设置为object

// value: ‘‘ //默认值

},

tableItems: {

type: Array,

},

},

data: {

someData: {} // 暂未设置,跟其他页面的data属性和用法类似

},

methods: {

customMethod: function() {

// 暂为定义

}

}

});

5、然后,在要引用的test页面的json文件里添加usingComponents属性

{

"navigationBarTitleText": "table test",

"usingComponents": {

"table": "../../components/Table/index"

}

}

6、再然后,在要引用的test页面的wxml文件里直接用table标签引入:

<view class="container">

<view class="title">table component</view>

<table tableThemes="{{themeArr}}" tableItems="{{itemArr}}"></table>

</view>

7、最后,在test页面的js文件里赋值给tableThemes、tableItems属性(本栗因无api返回,故均采用默认数据)

Page({

data: {

themeArr: {nickName: ‘昵称‘, age: ‘年龄‘, tell: ‘电话‘, address: ‘住址‘},

itemArr: [

{nickName: ‘Anna‘, age: 25, tell: 121243423424, address: ‘tianfuStreet‘},

{nickName: ‘Tina‘, age: 25, tell: 121243423424, address: ‘tianfuStreet‘},

{nickName: ‘Tom‘, age: 25, tell: 121243423424, address: ‘tianfuStreet‘},

{nickName: ‘Alex‘, age: 25, tell: 121243423424, address: ‘tianfuStreet‘},

{nickName: ‘Hallen‘, age: 25, tell: 121243423424, address: ‘tianfuStreet‘},

{nickName: ‘Lucy‘, age: 25, tell: 121243423424, address: ‘tianfuStreet‘},

]

},

onLoad() {

console.log(‘test is loaded‘);

}

});

test页面样式:

.container {

width: 100%;

height: 100%;

background: black;

}

.title {

font-size: 35rpx;

color: #fff;

text-align: center;

}

最终效果图如下:

原文地址:https://www.cnblogs.com/ganmy/p/8404472.html

时间: 2024-08-04 01:10:10

微信小程序简易table组件实现的相关文章

微信小程序_基础组件大全

微信小程序_基础组件 微信小程序为小程序开发者提供了一系列小程序基础组件,开发者可以通过组合这些小程序基础组件进行微信小程序的快速开发. 微信小程序组件是什么?微信小程序组件怎么用? 小程序组件是视图层的基本组成单元.小程序组件自带一些功能与微信风格的样式.一个小程序组件通常包括开始标签和结束标签,属性用来修饰这个组件,内容在两个标签之内. <tagname property="value"> Content goes here ... </tagename>

微信小程序导入Vant-Weapp组件库及出错处理

微信小程序导入Vant-Weapp组件库及出错处理一.下载Node.js*链接:https://nodejs.org/en/推荐选择LST的8.0以上版本,下载安装即可,安装完成后可以进行验证cmd打开终端,输入vant-v出现对应版本即为安装成功,也可输入npm -v查看对应的npm版本 二.在微信开发工具做对应操作 链接:https://youzan.github.io/vant-weapp/#/intro 后续可根据开发指南进行操作 三.安装Vant组件库选中miniprogram文件,右

微信小程序简易教程

1. 获取微信小程序的 AppID 登录 https://mp.weixin.qq.com ,就可以在网站的"设置"-"开发者设置"中,查看到微信小程序的 AppID 了,注意不可直接使用服务号或订阅号的 AppID . 注意:如果要以非管理员微信号在手机上体验该小程序,那么我们还需要操作"绑定开发者".即在"用户身份"-"开发者"模块,绑定上需要体验该小程序的微信号.本教程默认注册帐号.体验都是使用管理员

微信小程序wx.request组件的那些坑

最近在做一个教育的在线发布系统,打算用微信小程序做前端,后端用php的CI框架,这两天把CI框架的基本功能已经啃完,因为手册比较完善,所以按照逻辑走一边就通了. 反观微信小程序,帮助代码不多,对于一些没接触过前端和js开发的新手来说,很多流程和细节都会拿不准. 1.这两天遇到最大的困扰就是wx.request组件如何从php服务器端取回数据并显示在小程序界面上,这里涉及到一个通信, 因为小程序目前的机构和框架都是基于ajax异步交互的基础上的,所以要懂得小程序的数据读写功能,首先要了解ajax的

微信小程序引入外部组件 iView Weapp

iview Weapp组件的使用方法: 1. 下载小程序组件库 (前提是你已经有了项目目录) 你可以直接去github把iView Weapp的代码下载下来,也可以用过npm来下载. github地址:https://github.com/TalkingData/iview-weapp 2. 将组件库复制到工程的static目录下 下载完成后,到它的目录中寻找名为dist的目录并复制到你的工程目录下,然后给这个dist目录改个名字,比如叫iview. 3.  为需要使用自定义组件的Page进行配

微信小程序之video组件与cover-view组件和cover-image组件灵活应用

前言:最近忙着赶项目,没时间更博:希望和大家一起学习一起进步. 本人遇到的坑,以及爬出坑的方法:在某个微信小程序项目中,有这样一个需求:在滑块swiper组件和swiper-item组件中嵌套video,然后自定义一个播放的按钮替换默认的播放按钮和位置(我开始用的方法是用相对定位,把图片直接定位在视频的中央地方,问题就出现了,由于文档已经给了提示,最好不要在滑块swiper组件和swiper-item组件中嵌套video,所以,最后导致,第一个滑块可以正常看到播放按钮,其他的则不行,会随着滑块滑

微信小程序——引入Vant组件库

背景 在微信小程序开发过程中,使用第三方组件库,高效便捷的使用 步骤 安装npm 右键小程序根目录,打开终端 输入:npm init Next 安装vant组件 右键小程序根目录,打开终端 输入:npm i @vant/weapp -S --production 构建npm 使用npm模块 完成 原文地址:https://www.cnblogs.com/zuiyue_jing/p/12260245.html

微信小程序覆盖自定义组件样式

小程序官方文档明确指出,引入的第三方自定义组件,是不可以对其进行CSS样式覆盖的,但是我们还想要修改怎么办呢?自定义组件时会之定义个外部类,通过这个外部类来修改样式. 修改https://weapp.iviewui.com/所提供的组件样式为例,它定义了一个外部类接口: 1. 通过第三方组件给出的externalClasses: ['i-class'],来指定自己的样式类 自己的wxml i-class="myrate" <i-rate i-class="myrate&

微信小程序——自定义图标组件

字体图标在网页中非常常见了.为了方便在小程序里面重复使用,自定义了一个图标组件,方便控制它的大小,颜色,自定义点击事件. 自定义图标组件的代码如下: 下面的代码是icon文件夹下面的4个文件 index.wxml: <view class="custom-class ss-font ss-icon-{{ name }}" style="{{ color ? 'color: ' + color : '' }}; {{ size ? 'font-size: ' + size