uni-app中页面的上拉加载与下拉刷新

前端同学在日常搬砖中肯定会写一些下拉刷新上拉加载数据的列表,实现的方式也很多。今天我就从一个前端小白的角度去梳理一下这些上拉下拉的具体实现方式


下拉刷新

这个是非常简单的,在pages.json文件中,将想要开启下拉刷新页面中的 enablePullDownRefresh 选项改成true

json 复制代码
{
            "path" : "pages/mine/junior",
            "style" :                                                                                    
            {
                "navigationBarTitleText": "绑定用户",
                "navigationStyle": "custom",
                "enablePullDownRefresh": true
            }
            
        }

然后在页面中定义下拉的回调要处理方法 onPullDownRefresh,然后在其中编写具体逻辑即可。

scss 复制代码
    onPullDownRefresh() {
            //  this.fetchData()     todo
            setTimeout(()=>{
                    uni.stopPullDownRefresh()
            },500)
    },

下拉还是非常简单的。

上拉加载数据方式一 通过页面的回调事件onReachBottom实现

当页面中内容超过可视区域出现滚动条时候,在页面中定义 onReachBottom 事件回调,此时当页面滚动到底部的时候就会触发事件。

javascript 复制代码
    onReachBottom() {
            console.log('到底了')
    },

这样就可以在回调中处理一些加载更多数据的逻辑了。

上面这种方式叫做页面滚动,就是说整个页面都会向上滚动,当触底了以后就可以拉取更多数据。这种方式实现起来简单,但是并不是适合于所有的下拉场景。比如说首页中顶部轮播需要固定住,只有下面一小块区域可以实现滚动,这就是区域滚动

上拉加载数据方式二 通过组件实现区域滚动。

这个组件可能我们就很熟悉了,因为uni-app还不是很普遍,用微信小程序原生开发的时候,做滚动就会去用这个组件。这个组件需要在初始化时候给予一个固定的高度值,这样当里面的内容超出这个高度值的时候,就能触发组件的下拉事件 @scrolltolower但是这个高度值如何去设定也是一个问题,因为不同的手机的屏幕高度是不同的,怎么样去兼容所有的手机会是一个问题。早期我的实现方式一直是通过flex布局。顶部容器给与个固定高度,然后滚动区域给与一个 flex:1的属性进行撑开。但是这不是最好的方式,不同端可能会出现一些兼容问题。推荐的一个做法是通过计算的方式计算出一个合理的高度即可。

篇幅有限,这里只讲解了实现思路,并没给出示例代码,后续补充完善

相关推荐
张拭心5 小时前
Cursor 又偷偷更新,这个功能太实用:Visual Editor for Cursor Browser
前端·人工智能
I'm Jie5 小时前
深入了解 Vue 3 组件间通信机制
前端·javascript·vue.js
用户90443816324606 小时前
90%前端都踩过的JS内存黑洞:从《你不知道的JavaScript》解锁底层逻辑与避坑指南
前端·javascript·面试
CodeCraft Studio7 小时前
文档开发组件Aspose 25.12全新发布:多模块更新,继续强化文档、图像与演示处理能力
前端·.net·ppt·aspose·文档转换·word文档开发·文档开发api
PPPPickup7 小时前
easychat项目复盘---获取联系人列表,联系人详细,删除拉黑联系人
java·前端·javascript
老前端的功夫7 小时前
前端高可靠架构:医疗级Web应用的实时通信设计与实践
前端·javascript·vue.js·ubuntu·架构·前端框架
前端大卫8 小时前
【重磅福利】学生认证可免费领取 Gemini 3 Pro 一年
前端·人工智能
孜燃8 小时前
Flutter APP跳转Flutter APP 携带参数
前端·flutter
脾气有点小暴8 小时前
前端页面跳转的核心区别与实战指南
开发语言·前端·javascript
lxh01138 小时前
最长递增子序列
前端·数据结构·算法