一、实现效果
实现搜索框,表格和翻页效果
二、组件实现
1、创建表格组件页面
(1)创建文件
在文件根目录(与pages同级)直接创建components文件夹,并创建表格的页面common-table/index
(2)视图层
a、写入表头
循环由主页面传递的columns,数据为字段名label,宽度为设置的width
b、写入表格行数据
循环主页面传递的list,根据表头字段对应展示行信息
c、暂无数据展示
如果传递的list有数据就展示表格信息
<view wx:if="{{tableData.list.length > 0}}" class="table">
如果传递的数据为空,就展示暂无数据提示
<view wx:else class="none">暂无数据</view>
d、翻页实现
如果行的长度大于0就展示翻页功能,其实这个也可以放到<view wx:if="{{tableData.list.length > 0}}" class="table">中,写入上一页方法,下一页方法,页数/总页数
(3) json
开启component表明是组件
(4)逻辑层
a、获取主页面传递的表格数据
在properties参数中写入表格数据tableData,类型为对象,其值为columns和list
b、获取主页面传递的翻页数据
写入翻页用到的数据当前页码page和总页数totalPage
c、写入翻页方法-上一页
当前页码大于 1 时,触发一个名为 'prev'
的自定义事件,并传递上一页的页码(page - 1
)给父组件。
this.triggerEvent('next', {page: this.data.page + 1
});
我这个组件要向外抛出一个叫 'prev'
的事件,并且带上参数 `{ page: 当前页-1 }”,让父组件知道需要加载上一页的数据。
d、写入翻页方法-下一页
当用户当前所在的页面 **不是最后一页(page < totalPage
)**时,就触发一个名为 next
的自定义事件,并携带下一个页面的页码(page + 1
)。
this.triggerEvent('next', {page: this.data.page + 1
});
这个组件要向外抛出一个叫 'next'
的事件,并且带上参数 `{ page: 当前页+1 }”,让父组件知道需要加载下一页数据。”