Skip to content

xtf-load-more

组件说明

xtf-load-more 是加载更多组件,用于列表底部的加载状态提示。支持加载中、加载完成、加载失败和点击加载四种状态,适用于分页列表底部等场景。


基础用法

1. 基础用法

通过 status 控制加载状态:

vue
<template>
  <view>
    <xtf-cell v-for="item in list" :key="item.id" :title="item.title" />
    <xtf-load-more :status="loadStatus" @click-load-more="onLoadMore" />
  </view>
</template>

<script>
export default {
  data() {
    return {
      list: [],
      loadStatus: 'more',
      page: 1
    }
  },
  methods: {
    onLoadMore() {
      this.loadStatus = 'loading'
      setTimeout(() => {
        const newItems = Array.from({ length: 10 }, (_, i) => ({
          id: this.page * 10 + i,
          title: '项目 ' + (this.page * 10 + i)
        }))
        this.list = this.list.concat(newItems)
        this.page++
        this.loadStatus = this.page > 3 ? 'noMore' : 'more'
      }, 1000)
    }
  }
}
</script>

2. 自定义文案

通过 contentText 自定义各状态文案:

vue
<template>
  <xtf-load-more :status="loadStatus" :content-text="contentText" @click-load-more="onLoadMore" />
</template>

<script>
export default {
  data() {
    return {
      loadStatus: 'more',
      contentText: {
        contentdown: '点击加载更多',
        contentrefresh: '正在加载...',
        contentnomore: '没有更多了',
        contenterror: '加载失败,点击重试'
      }
    }
  },
  methods: {
    onLoadMore() {
      this.loadStatus = 'loading'
      setTimeout(() => {
        this.loadStatus = 'noMore'
      }, 1000)
    }
  }
}
</script>

3. 加载失败后重试

status 设为 error 时,用户点击组件会再次触发 click-load-more

vue
<template>
  <xtf-load-more :status="status" @click-load-more="retry" />
</template>

<script>
export default {
  data() {
    return { status: 'error' }
  },
  methods: {
    retry(event) {
      console.log('重新请求下一页:', event.detail.status)
      this.status = 'loading'
      setTimeout(() => {
        this.status = 'noMore'
      }, 500)
    }
  }
}
</script>

全部属性

属性类型默认值作用描述适用范围
statusString'more'状态(more/loading/noMore/error/finished)状态
showIconBooleantrue是否显示图标图标
iconTypeString'auto'图标类型(auto/circle)图标
colorString'#777777'文字颜色样式
contentTextObject{ contentdown: '', contentrefresh: '', contentnomore: '', contenterror: '' }各状态文字文字
showTextBooleantrue是否显示文字文字
themeString'primary'主题色主题
customClassString''自定义类名样式覆盖

事件

事件名称触发时机回调参数参数说明
clickLoadMore点击加载更多时触发({ detail: { status } })当前状态
click-load-more点击加载更多时触发({ detail: { status } })当前状态

主题说明

  • 加载图标使用 xtf-loading 组件
  • 支持 primarysuccesswarningdangerinfo 主题色

如需全局调整主题,请在 xtf-config-provider 中覆盖上述 CSS 变量。

MIT Licensed