uniapp页面vue3下拉触底发送获取新数据请求实现分页功能

页面下拉触底获取新数据实现分页功能实现方式有两种,根据自己的业务需求来定,不同的方案适用场景不一样,有的是一整个页面下拉获取新数据,有的是部分盒子内容滚动到底部时候实现获取新数据,下面讨论一下两种方式的区别。

整个页面触底

整个页面触底也就是整个页面都可以下滑滚动的,使用view标签配套css实现

<view class="orderList">
    ...
    ...
</view>

实现的效果:整个页面都是可以滚动的,注意看顶部也是可以滑动的

使用uniapp的触底获取新数据的功能,可以在page.json里面配置距离底部多少距离触发函数,官方文档:页面 | uni-app官网

代码实现:

import { onReachBottom } from '@dcloudio/uni-app'


// 触底后去新数据
onReachBottom(() => {
    console.log('触底后去新数据')
    if (orderList.value.length >= pages.total) {
        uni.showToast({
            title: '没有更多数据了',
            icon: 'none',
            duration: 1000,
        })
    } else {
        pages.current++
    }
})

 

部分内容触底

官方文档:scroll-view | uni-app官网

可滚动视图区域。用于区域滚动。需注意在webview渲染的页面中,区域滚动的性能不及页面滚动。配置 lower-threshold 实现距离底部多少距离可以触发函数@scrolltolower

实现的效果:红框选中的是固定不动的

 

滚动视图:

<scroll-view
            scroll-y
            class="orderList"
            :lower-threshold="200"
            @scrolltolower="scrollBotton"
        >

内容
。。。。。


</scroll-view>



// scroll-view 底部触发
const scrollBotton = () => {
    console.log('scroll-view底部触发')
    if (orderList.value.length >= pages.total) {
        uni.showToast({
            title: '没有更多数据了',
            icon: 'none',
            duration: 1000,
        })
    } else {
        pages.current++
    }
}


// css 
.orderList {
    padding-bottom: 30rpx;
    background-color: #e3e3e394;
    height: calc(100vh - 80rpx - v-bind(contentTop));
}

 

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1024小神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值