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

2023-11-02

前言: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"
		}
	}
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 浏览器中地址框输入url地址会进行什么操作?

    一 http请求流程 http 超文本传输协议 是基于TCP协议之上的应用层协议 http的请求会进行以下操作 一 http请求流程 1 1 url域名解析成ip地址 dns解析 1 2 建立三次握手TCP连接 1 2 1 报文中SYN S
  • hashmap转红黑树的两个条件

    一个是链表长度到8 实际是要超过8 后面有补充说明 一个是数组长度到64 上图所示是判断链表长度到达8调用treeifyBin方法转换红黑树 TREEIFY THRESHOLD的值为8 TREEIFY THRESHOLD 1 7 所以bin
  • Pandas中对DataFrame列名进行重命名

    目录 1 重命名Pandas DataFrame Column 列 2 在创建Dataframe时指定列名 3 使用 list 设置全部列名 Pandas是一个用于数据分析和操作的Python库 在pandas中几乎所有的操作都围绕着Dat
  • 5款超级好用的命令行工具,提升你的开发效率!

    微信公众号公众号平凡而诗意 更多精彩内容第一时间推送 如果你是一个喜欢使用Linux系统 或者经常和Linux打交道的开发人员 那么 终端和命令行一定是接触最为频繁的工具之一 Linux不像Windows那样 有丰富的桌面应用 但是 却有很
  • JavaScript基础背诵点

    1 JavaScript是一种基于对象和事件驱动具有安全性能的脚本语言 HTML语言是网页设计中普遍采用的一种超文本标记语言 但HTML自身并不能为网页提供动态支持 也不能接受用户输入 更不能对用户请求做出反应 JavaScript可以嵌入
  • linux的crontab定时配置全过程

    今天因为业务需求 需要在服务器上配置定时任务执行数据库的sql语句 所以使用到了linux 的crontab 特此记录 分享一下自己的过程 首先呢 我们知道crontab是在linux中用于设定在某些时间可以自动执行某些命令的功能 在lin
  • Java实现定时任务

    文章目录 1 使用java util Timer 2 使用ScheduledExecutorService 3 使用Spring Task 1 使用java util Timer 这种方式的定时任务主要用到两个类 Timer 和 Timer
  • 什么样的人适合网络营销?

    最近码教授发现很多网友都在网上发问 什么样的适合做网络营销 网络营销难吗 说实话这行业来的太快 很多都没准备好就来了 说得夸张点但凡现在做这行业的基本都不缺客户都缺人 有一点经验就有可能今天4000明天去另外一公司给到8000 但真心好用的
  • 平衡二叉树平衡因子_数据结构:平衡二叉树

    1 基本概念 平衡二叉树 AVL树 或为空树 或为如下性质的二叉排序树 左右子树深度之差的绝对值不超过1 左右子树仍然为平衡二叉树 平衡因子BF 左子树深度 右子树深度 平衡二叉树每个结点的平衡因子只能是1 0 1 若其绝对值超过1 则该二
  • 计算机技能是啥,简历中的IT技能是什么意思?

    IT技能就是你会的计算机知识 从精通程度上可以分为精通 熟练 了解等 从所学内容上 把你学过的语言 用过的工具 掌握的技术都写上 按条理分类写 IT技能 比如 熟练操作计算机 熟练使用各类办公软件 如word excel等 能够使用fron
  • UniApp中如何实现APP页面横竖屏切换?

    前段时间做了一个驾考项目 该项目是使用UniApp搭建的 其中就遇到的一个需求就是横竖屏切换 用横屏来模拟驾照考试 通过查阅文档发现 在UniApp中 要实现横竖屏切换可以由以下步骤来实现 一 通过配置页面的 manifest json 文
  • 数据属性WEKA学习总结

    首先声明 我是一个菜鸟 一下文章中现出技术误导情况盖不负责 1 Weka理处的数据表格中 一个横行称为一个例实 Instance 竖行代表一个属性 Arrtibute 数据表格称为一个数据集 在weka看来 现呈了属性之间的一种关系 Rel
  • Postman发送post请求

    Postman发送post请求 在服务器开发过程中 要经常对get post接口进行测试 get请求 浏览器就可以完成 而post请求浏览器用起来有点麻烦 有的浏览器支持的不太好 个人用过火狐 还可以 今天介绍一下Postman发送post
  • Linux学习之shell bash

    一 硬件 内核 与shell 有操作系统就会离不开shell这个东西 操作系统实际上是一组软件 由于这组软件在控制整个硬件与管理系统的活动检测 如果能被随意操作那就乱套了 所以不能被非管理员用户所随意使用 但是对于用户来说也是需要体验的 用
  • 用python统计字母个数_如何用python统计字符串中字母个数?

    如何用python统计字符串中字母个数 python统计字符串中字母个数的方法 先使用这三种代码dic dict d s set s helloworld 1 d dict for x in s if x not in d keys d x
  • 编写Linux C++程序如何影响VIRT(虚存)和RES(实存/常驻内存)

    在Linux命令行中执行top命令 可以查询到所有进程使用的VIRT虚拟内存 RES常驻内存和共享内存SHR 那么 什么是VIRT虚拟内存 RES常驻内存和共享内存SHR 我们编写的Linux C 程序如何影响它们呢 查阅资料后 归纳一下
  • cadence allegro绘制原理图库

    前言 为什么投向了allegro 本科毕业于电子信息工程专业 相信很多学生也和我一样 在一个类似于叫EDA的课上通过DXP Altium Designer学习绘制PCB电路 因此大多数学生应该是会用AD这款软件的 至少最基本的流程不会出问题
  • C++学习1-vector学习

    https blog csdn net m0 59924193 article details 122535504 1 push back 2 pop back 3 size 4 clear 5 insert 6 erase vector变
  • 用abp vNext快速开发Quartz.NET定时任务管理界面

    用abp vNext快速开发Quartz NET定时任务管理界面 今天这篇文章我将通过实例代码带着大家一步一步通过abp vNext这个asp net core的快速开发框架来进行Quartz net定时任务调度的管理界面的开发 大伙最好跟
  • uniapp使用自带【刷新方法】与使用【scroll-view】实现下拉刷新上拉加载

    前言 uniapp自带下拉刷新 上拉加载功能基本可以满足刷新需求 但是顶部有状态栏的页面就得进行特殊处理 使用scroll view解决 状态栏会连带被下拉问题 1 uniapp自带下拉刷新 上拉加载 在page json中对应页面路由设置