uniapp之列表加载更多数据

本文介绍如何在UniApp中实现分页加载功能,通过监听页面滚动到底部的事件来加载更多数据,并使用u-loadmore组件指示加载状态。文章详细解释了如何通过调整参数获取不同页数的数据,并附带了一个关于在UniApp中使用ECharts进行数据可视化的案例。

触发事件onreachbottom,和onLoad等生命周期同级,页数加载时将变量传给接口再返回页数

//html
<!-- 加载更多 -->
<u-loadmore :status="status"/>
//data
      //分页
      status: 'loadmore', //加载状态
      list: 1, //页数
      page: 20, //当前展示多少数据
      total: 0, //总页数
      //数据
      dataList: {
        Listment: [],
      },

//js
  //加载更多事件
  onReachBottom() {
    if (this.page >= this.total) {
      console.log('判断当前页数数据是否大于等于总页数数据')
      this.status = 'nomore'; //已经滑到底的提醒
      return false;
    } else {
      this.page += 10; //加载当前页数十条数据
      // this.status = 'loading'; //刷新状态
      this.getPage(); //重新调用列表接口,获取下一页数据
    }
  },
  
  //接口
  //列表
    getPage(Id,) {
      uni.request({
        url: "xxx接口",
        data: {
          Id,
          SkipCount: (this.list - 1) * this.page,
          MaxResultCount: this.page,
        },
        success: (res) => {
          this.dataList.Listment = res.data.items
          this.total = res.data.totalCount

        },
        fail: (err) => {
          //console.error(err);
        },
      })

    },

上一篇文章, 

uniapp踩坑之项目:引入echarts可视化图表_意初的博客-优快云博客echarts适配uni-app,支持大部分平台,体验原汁原味echarts配置。echarts for uniapp - DCloud 插件市场。在插件市场里导入项目里,https://blog.youkuaiyun.com/weixin_43928112/article/details/128099639

Uniapp 中实现上拉加载更多数据,可以使用 `onReachBottom` 事件来监听页面滚动到底部的时机。以下是一个简单的示例代码: ```vue <template> <view> <!-- 显示数据列表 --> <view v-for="(item, index) in dataList" :key="index"> <text>{{ item }}</text> </view> <!-- 加载更多提示 --> <view v-if="loading">加载...</view> <view v-else>已经到底啦</view> </view> </template> <script> export default { data() { return { dataList: [], // 数据列表 loading: false, // 是否正在加载数据 page: 1, // 当前页码 pageSize: 10, // 每页数据数量 }; }, mounted() { // 初始化加载第一页数据 this.loadData(); }, methods: { loadData() { // 模拟异步加载数据 this.loading = true; setTimeout(() => { const newData = []; // 新加载数据 for (let i = 0; i < this.pageSize; i++) { newData.push(`第 ${this.page} 页第 ${i + 1} 条数据`); } this.dataList = this.dataList.concat(newData); this.page++; this.loading = false; }, 1000); }, onReachBottom() { // 监听到页面滚动到底部,加载更多数据 this.loadData(); }, }, }; </script> ``` 在上面的示例中,通过 `onReachBottom` 方法监听页面滚动到底部的事件,并调用 `loadData` 方法加载更多数据。`loadData` 方法模拟了异步加载数据的过程,通过 `setTimeout` 来延迟加载数据并更新页面。`dataList` 数组用于存储已加载数据,`page` 记录当前页码,`loading` 用于控制加载提示的显示与隐藏。 当页面滚动到底部时,会触发 `onReachBottom` 方法,然后调用 `loadData` 方法加载更多数据。当数据加载完成后,页面会自动更新,显示新加载数据。 你可以根据实际需求修改示例代码中的数据加载方式,例如从后端接口获取数据。另外,根据 Uniapp 的文档和你的具体需求,还可以对加载过程进行优化和定制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值