0


uniapp使用自带【刷新方法】与使用【scroll-view】实现下拉刷新上拉加载

前言:uniapp自带下拉刷新,上拉加载功能基本可以满足刷新需求,但是顶部有状态栏的页面就得进行特殊处理,使用scroll-view解决,状态栏会连带被下拉问题

1、uniapp自带下拉刷新、上拉加载

在page.json中对应页面路由设置【enablePullDownRefresh】值为true(开启下拉刷新)

代码:

//下拉刷新触发方法(和onLoad同级)
onPullDownRefresh () {
    this.params.pageNum = 1
    this.PostCollectList()  //获取数据
},
//上拉加载触发方法
onReachBottom() {
    if(this.hasNextPage){    //判断是否还有数据需要加载
        this.params.pageNum = this.params.pageNum+1
        this.loading.status = "loadingText"
        this.PostCollectList()    //获取数据
    }else{
        this.loading.status = "nomoreText"
    }
},
onLoad() {},
methods: {
    PostCollectList() {
        let params = {
            ...this.params
        }
        PostCollectList(params).then(res => {
            let data = res.data.data || []
            this.list = this.list.concat(data)
            this.total = res.data.total
            this.hasNextPage = res.data.hasNextPage
            uni.stopPullDownRefresh()    //结束下拉刷新
            if(this.hasNextPage){
                this.loading.status = "loadmoreText"
            }else{
                this.loading.status = "nomoreText"
            }
        })
    },

}

2、使用scroll-view实现刷新,官网地址:scroll-view | 微信开放文档

需要注意:

官网中方法有带【bind】,使用@的话需要将bing去掉(@refresherpulling="refresherpulling")或者(bindrefresherpulling="bindrefresherpulling")

使用scroll-view必须设置一个高度

代码:

<template>
    <view>
        <scroll-view 
            scroll-y="true"    //设置纵向滚动
            :style="{height: scprllHeight + 'rpx'}"     //设置高度
            :refresher-threshold="100"    //设置下拉范围
            @refresherrefresh="refresherrefreshFun"     //下拉刷新被触发
            @refresherpulling="refresherpullingFun"      //正在下拉执行刷新操作   
            :refresher-triggered="isRefresher"        //设置是否刷新变量
            @scrolltolower="scrolltolowerFun"    //滑动底部触发事件
            refresher-enabled="true"             //开启自定义下拉刷新
            refresher-default-style="none">
            <view class="content-box">
                //需要滚动的内容
            </view>
        </scroll-view>
    </view>
</template>

data() {
    return {
        isRefresher: false, //下拉刷新状态
    }
},
methods: {
    //请求数据
    PostCollectList() {
        //数据请求返回后从设刷新状态值
        this.isRefresher= true
    },
    // 下拉刷新被触发
    refresherrefreshFun() {
        this.list = []
        this.params.pageNum = 1
        this.PostCollectList()
    },
    // 下拉刷新触发
    refresherpullingFun() {
        this.isRefresher= true
    },
    //上拉加载,页面滑动到底部加载分页数据
    scrolltolowerFun() {
        if(this.hasNextPage){
            this.params.pageNum = this.params.pageNum+1
            this.loading.status = "loadingText"
            this.PostCollectList()
        }else{
            this.loading.status = "nomoreText"
        }
    }
}
标签: uni-app vue.js 前端

本文转载自: https://blog.csdn.net/weixin_43973909/article/details/129089701
版权归原作者 Ms.Juan 所有, 如有侵权,请联系我们删除。

“uniapp使用自带【刷新方法】与使用【scroll-view】实现下拉刷新上拉加载”的评论:

还没有评论