uniapp移动端实现上拉加载(分页),下拉刷新

编程入门 行业动态 更新时间:2024-10-25 12:24:09

uniapp移动端实现上拉加载(<a href=https://www.elefans.com/category/jswz/34/1769545.html style=分页),下拉刷新"/>

uniapp移动端实现上拉加载(分页),下拉刷新

上拉加载

在需要实现该功能的页面写入 onReachBottom()方法函数,该方法与 onLoad() 方法同级,需在在data中声明 pageNo和pageSize以及总条数,具体代码如下:

html 部分

<-- html部分  引入uview 使用uview加载效果 --><div v-if="loading" style='display: flex;justify-content: center;margin-top: 50rpx;'><u-loading-icon></u-loading-icon></div>

javascript 部分

data() {return {				loading: true,//页码pageNo: 1,//页容量pageSize: 10,//总条数total: 0,List:[]}},onLoad() {  },// 上拉加载数据onReachBottom() {//判断 如果页码*页容量大于等于总条数,提示该页数据加载完毕if (this.pageNo * this.pageSize >= this.total){uni.$u.toast('数据加载完毕')return}//并且让页码+1,调用获取数据的方法获取第二页数据this.pageNo++//此处调用自己获取数据列表的方法this.Getlist()},methods: {// 获取数据列表Getlist() {//设置加载效果this.loading = true//调起接口 将页码入参Api({params: {pageNo: this.pageNo,pageSize: this.pageSize}}).then(res => {//如果获取数据成功 将数据赋值给事先声明的数组if (res.success) {this.List = res.result.records//判断 如果获取的数据的页码不是第一页,就让之前赋值获取过的数组数据 concat连接 刚获取的第n页数据if (res.result.pages != 1) {this.List = this.List.concat(res.result.records)} else {this.List = res.result.records}//将获取的总条数赋值this.total = res.result.total}this.loading = false})},}

遇到的问题

屏幕上滑onReachBottom不触发

解决

如果你在使用 onReachBottom 的时候没有触发,就看看那个页面有没有出现滚动条,没有就不会触发
因为 view 没有高度(百分百也不行),然后就调用不到 onReachBottom 这个钩子

page {height: initial;overflow-y: initial;min-height: 100vh;}

其实配不配置 onReachBottomDistance 都没关系的(个人觉得)

initial 关键字用于设置 CSS 属性为它的默认值

initial 关键字可用于任何 HTML 元素上的任何 CSS 属性
官网
initial
参考原文

下拉刷新

打开项目根目录中的 pages.json 配置文件,在需要开始下拉刷新功能的页面路径下添加 或者在 globalStyle 中全局添加 enablePullDownRefresh 为true,开始下拉刷新。代码如下:
某个页面开启:

{"path": "pages/views/index","style": {"navigationBarTextStyle": "white","navigationBarBackgroundColor": "#6495ed","navigationBarTitleText": "首页","enablePullDownRefresh": true}},

全局开启:

"globalStyle": {"navigationBarTextStyle": "black","navigationBarTitleText": "uni-app","navigationBarBackgroundColor": "#F8F8F8","backgroundColor": "#F8F8F8","enablePullDownRefresh": true,}},

同样,在与 onLoad() 方法同级处添加以下代码:

// 下拉刷新onPullDownRefresh() {console.log('刷新')//下拉之后 重新调用获取数据的方法this.Getlist()//获取之后 一定要 调用uni.startPullDownRefresh() 停止刷新!!!否则将会一直处于刷新状态			uni.startPullDownRefresh()},

参考原文

更多推荐

uniapp移动端实现上拉加载(分页),下拉刷新

本文发布于:2023-11-15 11:18:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1598708.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:分页   加载   uniapp

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!