uniapp里面分页加载数据,下方的加载方式的两种方法的总结

概要

在一些页面中,当画滑到商品底部,会出现“加载更多”的字样,
在这里插入图片描述
在这里插入图片描述
之后变成“正在加载”的旋转动画
在这里插入图片描述
也叫数据懒加载,用户滑到哪里,才加载所需要的数据。

组件

uview里面的组件
和uni-app里面扩展组件
是一样用法。

用法

第一种用法是内容高度没有固定, 放到底部
在这里插入图片描述
在这里插入图片描述
加载前值为loadmore,加载中为loading,没有数据为nomore
初始状态为loadmore
在这里插入图片描述
刚进入此页面调接口请求数据
在这里插入图片描述
在这里插入图片描述
页面滚到最底部,再次调用此方法
在这里插入图片描述

第二种用法是固定高度,在固定导读里面进行滚动
在这里插入图片描述
在scroll-view里面可滚动区域里面滚动,里面包含数据列表v-for循环渲染,底部加载动画。
在这里插入图片描述
商品列表数据
加载动画状态,加载前的状态
在这里插入图片描述
在这里插入图片描述
1.刚进入页面,在onShow中会调用获取商品数据的方法,里面进行判断加载状态,加载状态默认值为加载前,所以执行下面的事情将加载状态赋值为加载中,然后请求数据,请求的参数是数据长度和几条数据,请求回来的数据进行判断,4001是没登录,就去登录。请求回来的data.lists里面长度大于0,就是有数据,则把数据拼接到之前那数据变量中,加载状态变为加载前的转态。之后页面数据就会显示出来。

2.当滑到数据底部,进入scroll-view组件里面@scrolltolower="lower"滑动底部事件调用,此时进行加载的状态判断,不是加载中,和没有数据的转台,
进行赋值,加载中状态。此时请求数据,传参是,之前数据列表的长度,在加条数。相当与。请求后台数据的第一次请求的数据的后面的几条数据,然后4001是没登录,就去登录。请求回来的data.lists里面长度大于0,就是有数据,则把数据拼接到之前那数据变量中,加载状态变为加载前的转态。之后页面数据就会显示出来第二次的数据。如此不断循环不断地取之前的数据后面的几条。再拼接之前的数据赋值。只到最后取回来的数据为空,加载状态为没有数据了的状态。判断return false结束。就是这个逻辑。

小结

提示:这里可以添加总结

例如:

提供先进的推理,复杂的指令,更多的创造力。

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Uniapp 中实现下拉分页加载数据,可以通过以下步骤: 1. 首先,在页面中引入下拉刷新组件和分页加载组件。 ```html <template> <view> <list :finished="finished" @load="loadData" > <refresh refresher-triggered="onRefresh"> <!-- 下拉刷新的内容 --> </refresh> <cell v-for="(item, index) in dataList" :key="index"> <!-- 显示数据项的内容 --> </cell> <loading v-if="loading"></loading> </list> </view> </template> ``` 2. 在页面的 `data` 中定义数据相关的变量,如 `dataList` 用于存储加载数据,`loading` 用于标识数据加载中,`finished` 用于标识是否已加载完所有数据。 ```javascript export default { data() { return { dataList: [], loading: false, finished: false, }; }, // ... }; ``` 3. 实现下拉刷新和分页加载方法。 ```javascript export default { // ... methods: { // 下拉刷新 onRefresh() { // 清空数据列表 this.dataList = []; // 重置加载状态 this.finished = false; // 加载数据 this.loadData(); }, // 分页加载 loadData() { if (this.loading || this.finished) return; this.loading = true; // 发起网络请求获取数据 // 假设每页加载 10 条数据 // 模拟异步请求延迟 setTimeout(() => { // 模拟请求成功 const newData = [...]; // 新加载数据 if (newData.length > 0) { this.dataList = this.dataList.concat(newData); } else { this.finished = true; // 数据加载完 } this.loading = false; }, 1000); }, }, }; ``` 以上是一个简单的示例,实现了下拉刷新和分页加载数据的功能。当用户下拉刷新页面时,会触发 `onRefresh` 方法,清空数据并重新加载;当用户滚动到列表底部时,会触发 `loadData` 方法加载更多数据并追加到列表中。你可以根据你的实际需求进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值