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的属性进行撑开。但是这不是最好的方式,不同端可能会出现一些兼容问题。推荐的一个做法是通过计算的方式计算出一个合理的高度即可。

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

相关推荐
孟健39 分钟前
【社招】字节跳动猫箱前端团队招人啦~
前端·招聘
迷途小码农零零发43 分钟前
createContext+useContext+useReducer组合管理React复杂状态
前端·javascript·react.js
YiHanXii44 分钟前
React中的跨组件通信
前端·javascript·react.js
markzzw1 小时前
《浏览器插件钱包(二) - 处理DApp请求》
前端·web3·区块链
LCY1331 小时前
spring security的密码加密
前端·python·spring
LaoZhangAI1 小时前
Gemini 2.0 Flash Experimental API完全指南:图像生成/思考链应用/国内稳定访问【2025最新】
前端·后端
栩栩云生1 小时前
📥 x-cmd install | Slumber - 告别繁琐,拥抱高效的终端 HTTP 客户端
前端·后端·http
明天不下雨(牛客同名)1 小时前
Completablefuture的底层原理是什么
java·开发语言·前端·javascript
沫客1 小时前
VSCode上的bugger实践
前端·前端框架
关二哥拉二胡1 小时前
Electron 与 React Native Windows 性能对比报告
前端·javascript