loadMore 加载更多

此组件一般用于标识页面底部加载数据时的状态,共有三种状态:

  • 加载前,显示”加载更多”,加入点击可选,是因为数据不够一页时,无法触发页面的onReachBottom生命周期
  • 加载中,显示”正在加载…”,2种动画可选
  • 加载后,如果还有数据,回到”加载前”状态,否则加载结束,显示”没有更多了”

平台差异说明

AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序

基本使用

  • 通过status设置组件的状态,加载前值为loadmore,加载中为loading,没有数据为nomore

注意:以下示例仅为模拟效果,实际中请根据自己的逻辑,修改代码的实现

  1. <template>
  2. <view class="wrap">
  3. <view class="item u-border-bottom" v-for="(item, index) in list" :key="index">
  4. {{'第' + item + '条数据'}}
  5. </view>
  6. <u-loadmore :status="status" />
  7. </view>
  8. </template>
  9. <script>
  10. export default {
  11. data() {
  12. return {
  13. status: 'loadmore',
  14. list: 15,
  15. page: 0
  16. }
  17. },
  18. onReachBottom() {
  19. if(this.page >= 3) return ;
  20. this.status = 'loading';
  21. this.page = ++ this.page;
  22. setTimeout(() => {
  23. this.list += 10;
  24. if(this.page >= 3) this.status = 'nomore';
  25. else this.status = 'loading';
  26. }, 2000)
  27. }
  28. }
  29. </script>
  30. <style lang="scss" scoped>
  31. .wrap {
  32. padding: 24rpx;
  33. }
  34. .item {
  35. padding: 24rpx 0;
  36. color: $u-content-color;
  37. font-size: 28rpx;
  38. }
  39. </style>

控制组件的提示以及动画效果

  • 可以通过icon-type设置加载中的图标为flower或者circle,如果不需要图标,可以设置iconfalse
  • 可以设置is-dottrue,在没有数据时,内容显示为一个”●”替代默认的”没有更多了”
  • 可以通过配置load-text配置提示的文字,该参数为一个对象值,可以修改默认的文字提示,见如下:
  1. <template>
  2. <u-loadmore :status="status" icon-type="iconType" load-text="loadText" />
  3. </template>
  4. <script>
  5. export default {
  6. data() {
  7. return {
  8. status: 'loadmore',
  9. iconType: 'flower',
  10. loadText: {
  11. loadmore: '轻轻上拉',
  12. loading: '努力加载中',
  13. nomore: '实在没有了'
  14. }
  15. }
  16. }
  17. }
  18. </script>

手动触发加载更多

有时候可能会因为网络,或者数据不满一页的原因,导致无法上拉触发onReachBottom生命周期,这时候(需statusloadmore状态),用户点击组件,就会触发loadmore 事件,可以在回调中,进行状态的控制和数据的加载,同时也可以修改loadTextloadmore为”上拉或点击加载更多”进行更加人性化的提示。

API

Props

参数说明类型默认值可选值
status组件状态Stringloadmoreloading / nomore
bg-color组件背景颜色,在页面是非白色时会用到String#ffffff-
icon加载中时是否显示图标Booleantruefalse
icon-type加载中时的图标类型,Stringcircleflower
icon-coloricon-typecircle时有效,加载中的动画图标的颜色String#b7b7b7-
is-dotstatusnomore时,内容显示为一个”●”Booleanfalsetrue
color字体颜色String#606266-
font-size字体大小,单位rpxString | Number28-
load-text自定义显示的文字,见上方说明示例Object--
margin-top与前一个元素的距离,单位rpxString | Number0-
margin-bottom与后一个元素的距离,单位rpxString | Number0-

Event

事件名说明回调参数版本
loadmorestatusloadmore时,点击组件会发出此事件--