当前位置: 首页 > article >正文

uniapp H5页面实现懒加载

在 uniapp 中,要在小的 view 内实现列表懒加载,可以通过以下步骤来实现:

  1. 使用 scroll-view 组件来创建一个可滚动的区域。
  2. 在 scroll-view内 部放置一个list组件,用于显示数据列表。
  3. 监听 scroll-view 的滚动事件,当滚动到底部时触发加载更多数据的函数。
  4. 在加载更多数据的函数中,根据需要从服务器获取更多数据,并更新 list 组件的数据源。
<template>
  <view class="container">
    <scroll-view scroll-y="true" @scrolltolower="loadMoreData" style="height:100%">
      <view class="item" v-for="v in listData" :key="v" style="height: 100px;"> {{v}}</view>
      <view class="more">{{text}}</view>
    </scroll-view>
  </view>
</template>

<script>
export default {
  data() {
    return {
	  text:'',
      listData: [], // 初始数据
      page: 1, // 当前页码
      pageSize: 10 // 每页数据量
    }
  },
  methods: {
    // 模拟从服务器获取数据
    fetchData(page, pageSize) {
      return new Promise((resolve) => {
        setTimeout(() => {
          const data = Array.from({ length: pageSize }, (_, index) => `Item ${(page - 1) * pageSize + index + 1}`);
          resolve(data);
        }, 1000);
      });
    },
    // 加载更多数据
    async loadMoreData() {
      this.text = 'Loading...'
      const newData = await this.fetchData(this.page, this.pageSize);
      this.text = ''
      this.listData = [...this.listData, ...newData];
      this.page += 1; // 更新页码
    }
  },
  mounted() {
    this.loadMoreData(); // 初始化加载数据
  }
}
</script>

<style>
.container {
  height: 600rpx; /* 设置容器高度 */
  background: red;
}
.item{
	border-bottom: 1px solid #ccc;
}
.more{
  padding: 10rpx;
  text-align: center;
}
</style>

在这个示例中,我们创建了一个 scroll-view 组件,并在其内部放置了一个 list 组件来显示数据。通过监听 scroll-view 的 scrolltolower 事件,我们可以在用户滚动到底部时调用 loadMoreData 方法来加载更多数据。每次加载数据后,我们将新数据添加到 listData 数组中,并更新页面的显示。


http://www.kler.cn/a/468127.html

相关文章:

  • 文件上传漏洞 (网络安全)
  • 【insert 插入数据语法合集】.NET开源ORM框架 SqlSugar 系列
  • LEED绿色建筑认证在2025年相关消息
  • 【模型部署】实例(附代码)
  • [paddle] 非线性拟合问题的训练
  • 基于Spring Boot的车辆违章信息管理系统(LW+源码+讲解)
  • Fireworks AI:图像/PDF非文本内容转LLM可读文本
  • pytorch torch.scatter_reduce函数介绍
  • 使用Java Selenium修改打开页面窗口大小
  • 线程-8-日志_线程池
  • 比较 FreeSWITCH 的 asr 事件和回调函数
  • docker 转移文件到容器内部 以修改nextcloud添加域名信任 为例子
  • 【面试】后端开发面试中常见数据结构及应用场景、原理总结
  • 深入解析桥接模式、NAT模式与仅主机模式
  • 大模型微调技术: 从基于Stable Diffusion的绘画谈起
  • ceph文件系统
  • 自主可控,体验跃升丨恒拓高科亮相“HDD·广东鸿蒙生态伙伴论坛”
  • Postgresql 命令还原数据库
  • [C#]C# random.Next(0,1)包含0和1吗
  • Java 性能调优实战
  • 串口发送数据,SysTick定时器的实现
  • BUUCTF sqli-labs 1
  • 不只是mini-react第一节:实现最简单mini-react
  • C#—SynchronizationContext类详解 (同步上下文)
  • hashMap追问
  • Python 中利用装饰器实现多线程函数调用示例