位置: IT常识 - 正文

uniapp实现上拉加载更多(uniapp下拉)

编辑:rootadmin
uniapp实现上拉加载更多

目录

一、添加全部

1.在主页面中添加一列

 2.改云函数

3.插件市场导入 加载中组件

二、实现上拉加载

1.云函数中可以接收参数

2.获取下拉事件

3.写触发这个下拉干嘛

在 显示加载中的组件里面


一、添加全部1.在主页面中添加一列data.unshift({name:'全部'}) //添加一列 ‘全部’

推荐整理分享uniapp实现上拉加载更多(uniapp下拉),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp的下拉框,uniapp实现上拉加载下一页,uniapp实现下拉弹出新页面,uniapp下拉菜单怎么赋值,uniapp下拉,uniapp上拉刷新,uniapp实现上拉加载下拉刷新,uniapp实现上拉加载下一页,内容如对您有帮助,希望把文章链接给更多的朋友!

 

 2.改云函数

(累了 直接上代码)这里match匹配空对象相当于全部哈

'use strict';const db=uniCloud.database()//1.创建引用exports.main = async (event, context) => {//event为客户端上传的参数const {name} = event//等同 var name=event.namelet matchObj={}if (name !== '全部') {matchObj = {classify: name}} const list =await db.collection('article')//2.创建.aggregate()//获取聚合操作实例.match(matchObj)//筛选出classify是前端开发的.project({content:0})//类似.field.end()return {code: 200,msg: '数据请求成功',data: list.data} };

3.插件市场导入 加载中组件二、实现上拉加载uniapp实现上拉加载更多(uniapp下拉)

上拉加载实际上把一页分成好几页来加载,拉一下就加载一点点 就这样

1.云函数中可以接收参数'use strict';const db=uniCloud.database()//1.创建引用exports.main = async (event, context) => {//event为客户端上传的参数const {name,page = 1,pageSize = 10} = event//等同 var name=event.namelet matchObj={}if (name !== '全部') {matchObj = {classify: name}}const list =await db.collection('article')//2.创建.aggregate()//获取聚合操作实例.match(matchObj)//筛选出classify是前端开发的.project({content:0})//类似.field.skip(pageSize * (page - 1)).limit(pageSize)//返回几条数据?.end()return {code: 200,msg: '数据请求成功',data: list.data} };2.获取下拉事件<scroll-view class="list-scroll" scroll-y @scrolltolower="loadmore">

传呀传

methods:{loadmore(){this.$emit('loadmore')}}

传呀传

传到头啦

3.写触发这个下拉干嘛loadmore() {if (this.load[this.activeIndex].loading === 'noMore') returnthis.load[this.activeIndex].page++this.getList(this.activeIndex)},

getList里面

getList(current) {if (!this.load[current]) {this.load[current] = {page: 1,loading: 'loading'}} //分离page 不能让他们共享一个console.log('当前的页数', this.load[current].page);this.$api.get_list({ //传三个参数name: this.tab[current].name,page: this.load[current].page,pageSize: this.pageSize}).then(res => {console.log(res);const {data} = resif (data.length === 0) {let oldLoad = {}oldLoad.loading = 'noMore'oldLoad.page = this.load[current].pagethis.$set(this.load, current, oldLoad)// 强制渲染页面this.$forceUpdate()return}let oldList = this.listCatchData[current] || []oldList.push(...data)this.$set(this.listCatchData, current, oldList)})}

完整代码:

<template><swiper @change="change" :current="activeIndex" style="height: 100%"><swiper-item style="height: 100%" v-for="(item ,index) in tab" :key="index" class="swiper-item"><list-item :list="listCatchData[index]" :load="load[index]" @loadmore="loadmore"></list-item></swiper-item></swiper></template><script>export default {name: "list",props: {tab: {type: Array,default () {return []}},activeIndex: {type: Number,default: 0}},data() {return {list: [],// js 的限制 listCatchData[index] = datalistCatchData: {},load: {},pageSize: 10};},watch: {tab(newVal) {//如果是新的tabif (newVal.length === 0) returnthis.listCatchData = {}this.load = {} this.getList(this.activeIndex)}},methods: {loadmore() {//if ‘没有更多数据’就返回 不申请啦if (this.load[this.activeIndex].loading === 'noMore') returnthis.load[this.activeIndex].page++this.getList(this.activeIndex)},change(e) {const {current} = e.detail; //取到 current这个数据this.$emit('change', current)// TODO 当数据不存在 或者 长度是 0 的情况下,才去请求数据 不用每次都加载已经加载过的if (!this.listCatchData[current] || this.listCatchData[current].length === 0) {this.getList(current)}},getList(current) {if (!this.load[current]) {//分离page 不能让他们共享一个this.load[current] = {page: 1,loading: 'loading'}} console.log('当前的页数', this.load[current].page);this.$api.get_list({ //传三个参数name: this.tab[current].name,page: this.load[current].page,pageSize: this.pageSize}).then(res => {console.log(res);const {data} = resif (data.length === 0) //if没有数据就搞它let oldLoad = {}oldLoad.loading = 'noMore'oldLoad.page = this.load[current].pagethis.$set(this.load, current, oldLoad)// 强制渲染页面this.$forceUpdate()return}let oldList = this.listCatchData[current] || []//解决每次加载覆盖 没有新的oldList.push(...data)this.$set(this.listCatchData, current, oldList)})}}}</script><style lang="scss">.home-swiper {height: 100%;.swiper-item {height: 100%;overflow: hidden;.list-scroll {height: 100%;}}}</style>在 显示加载中的组件里面<uni-load-more iconType="snow" :status="load.loading"></uni-load-more>
本文链接地址:https://www.jiuchutong.com/zhishi/299120.html 转载请保留说明!

上一篇:photo-sphere-viewer中文文档

下一篇:Apsara Clouder云计算专项技能认证:云服务器ECS入门[考试真题分享](Apsara Clouder云计算技能认证)

  • lyaal00是华为什么型号(华为lya-al00p是什么型号手机)

    lyaal00是华为什么型号(华为lya-al00p是什么型号手机)

  • 电脑图片名称怎么设置(电脑图片名称怎么编辑格式)

    电脑图片名称怎么设置(电脑图片名称怎么编辑格式)

  • 微信可以分享屏幕吗(微信分享屏幕功能在哪里)

    微信可以分享屏幕吗(微信分享屏幕功能在哪里)

  • 手机微信怎么扫二维码(手机微信怎么扫一扫网页上的二维码)

    手机微信怎么扫二维码(手机微信怎么扫一扫网页上的二维码)

  • 华为型号TRT_AL00是什么(华为型号dvc-tn20)

    华为型号TRT_AL00是什么(华为型号dvc-tn20)

  • 荣耀带v和不带v的区别(荣耀v系列是不是旗舰系列)

    荣耀带v和不带v的区别(荣耀v系列是不是旗舰系列)

  • r3600相当于英特尔什么处理器(r5 3600对应英特尔哪一款cpu)

    r3600相当于英特尔什么处理器(r5 3600对应英特尔哪一款cpu)

  • 光纤lc接口为啥是两根(lc接口光纤接sfp)

    光纤lc接口为啥是两根(lc接口光纤接sfp)

  • 钢化膜角上不能贴合怎么办(钢化膜角上不能贴合跟屏幕有关吗)

    钢化膜角上不能贴合怎么办(钢化膜角上不能贴合跟屏幕有关吗)

  • ios10有录屏功能吗(ios10的录屏功能在哪里设置)

    ios10有录屏功能吗(ios10的录屏功能在哪里设置)

  • lxe是什么文件(lxe是什么文件格式)

    lxe是什么文件(lxe是什么文件格式)

  • 视频源格式错误怎么解决(视频源格式错误怎么办qq浏览器)

    视频源格式错误怎么解决(视频源格式错误怎么办qq浏览器)

  • 华为p30怎么设置屏保时间(华为p30怎么设置返回键)

    华为p30怎么设置屏保时间(华为p30怎么设置返回键)

  • ups的中文名(ups的中文名是什么)

    ups的中文名(ups的中文名是什么)

  • 华为lldal10什么型号(华为lldal10是什么型号多少钱)

    华为lldal10什么型号(华为lldal10是什么型号多少钱)

  • 小米来电秀怎么自定义(小米来电秀怎么添加自己的视频)

    小米来电秀怎么自定义(小米来电秀怎么添加自己的视频)

  • 手机无法获取摄像头数据怎么办(手机无法获取摄像头数据是什么意思)

    手机无法获取摄像头数据怎么办(手机无法获取摄像头数据是什么意思)

  • 一加7pro支持分屏吗(一加7pro有分屏吗)

    一加7pro支持分屏吗(一加7pro有分屏吗)

  • huawei share 怎么用

    huawei share 怎么用

  • 南京地铁乘车码能刷几个人(微信怎么开通南京地铁乘车码)

    南京地铁乘车码能刷几个人(微信怎么开通南京地铁乘车码)

  • 华为荣耀9x指纹解锁在哪(华为荣耀9x指纹在哪里设置)

    华为荣耀9x指纹解锁在哪(华为荣耀9x指纹在哪里设置)

  • xr怎么切换卡打电话(iphonexr切换卡)

    xr怎么切换卡打电话(iphonexr切换卡)

  • 苹果短信回声效果收到怎么看不到(苹果短信回声效果对方看不到)

    苹果短信回声效果收到怎么看不到(苹果短信回声效果对方看不到)

  • 苹果搬板是什么意思(苹果搬板教程)

    苹果搬板是什么意思(苹果搬板教程)

  • 什么笔记本适合使用黑苹果(什么笔记本适合计算机专业)

    什么笔记本适合使用黑苹果(什么笔记本适合计算机专业)

  • 苹果怎么用蓝牙传照片给安卓(苹果怎么用蓝牙传文件到电脑)

    苹果怎么用蓝牙传照片给安卓(苹果怎么用蓝牙传文件到电脑)

  • OPPO Reno的生活服务功能如何使用(oppo生活助手)

    OPPO Reno的生活服务功能如何使用(oppo生活助手)

  • 文件夹怎么发送详细教程(文件夹怎么发送不了)

    文件夹怎么发送详细教程(文件夹怎么发送不了)

  • 创建vue2项目(vue创建项目后开始写的步骤)

    创建vue2项目(vue创建项目后开始写的步骤)

  • 【Node.js实战】一文带你开发博客项目之联调(导入HTML、Nginx反向代理、CORS解决跨域、与前端联调)(node.js教程详细)

    【Node.js实战】一文带你开发博客项目之联调(导入HTML、Nginx反向代理、CORS解决跨域、与前端联调)(node.js教程详细)

  • 年度所得税汇算清缴操作流程
  • 领备用金填什么单子
  • 一次性开票分期确认收入的税务文件是什么
  • 在分公司签的合同能转到总公司吗
  • 城建税计税依据扣除增值税期末留抵
  • 个体工商户发票额度
  • 企业卖旧房如何计算缴纳土地增值税
  • 酒店里的水电费怎么收
  • 工程暂估价超了怎么办
  • 银行转账短信提醒还要收费吗
  • 外商投资企业退出条件
  • 审计人员的差旅费放在哪核算
  • 职工食堂的费用怎么入账
  • 增值税专用发票可以开电子发票吗
  • 普通硅酸盐水泥和矿渣硅酸盐水泥的区别
  • 物管费开票可以开公司名称吗
  • 营改增后新纳入增值税征税范围的有
  • 房地产净利润率计算公式
  • 跨年度的费用发票怎么做账
  • 工资发错了,多发了怎么办
  • 固定资产清理会计处理例题
  • 个体工商户需要做账吗
  • 出口茶叶需要什么资质
  • 确认预计负债的必要条件
  • 债券投资属于什么业务
  • 外购固定资产入账
  • 小规模纳税人销售自己使用过的汽车
  • 笔记本电脑如何恢复出厂系统
  • icon图标教程
  • php随机数组
  • 相思树学名叫什么
  • phpforeach
  • 在php中提供了什么函数用于删除数组中的元素
  • 企业所得税利息费用的扣除标准
  • 利用html css javascript做一个网页
  • php实现当前页面的快捷键
  • 集团公司对子公司的内部审计
  • 无偿转让股权印花税计税金额
  • 进项税转出金额是发票上的哪个
  • 当月已付款, 没收到发票怎么做账
  • 汽车4s店,厂家返修
  • wordpress部署到github
  • 小规模差额征税可以开专票吗
  • 企业增资会计科目
  • 定货还是订货
  • 网上报税有没有时间限制
  • 销项负数发票如何作废
  • 原材料的采购成本包括哪些
  • 收到设计费分录怎么写
  • 公司用现金支付货款
  • 个人工资怎么合理避税有什么方法
  • 视同销售的账务处理如何做?
  • 进账单,其中有两个账户
  • 权益净利率计算公式产权比率
  • 收到先征后返的增值税计入哪里
  • 技术开发免税收入怎么算
  • 长期股权投资哪一章
  • 航天金税服务费发票在哪打印
  • 小规模纳税人变更一般纳税人条件
  • 增值税留抵退税申请流程
  • 建账的要点
  • win10安全系统
  • centos7挂载
  • mac睡眠后黑屏
  • snmptrap.exe - snmptrap是什么进程 有什么作用
  • perl中的$1
  • jquery有什么功能
  • unity4.1
  • unity3d webgl
  • 如何解决焦虑的心理
  • Android之Notification-android学习之旅(二)
  • 批处理显示
  • android的edittext在哪
  • 在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
  • Unity3D游戏开发毕业论文
  • javascript五种数据类型
  • 东莞市国家税务局网上办税大厅
  • 河北省国家税务局电子税务局登录
  • 光伏电站电力监控系统
  • 减免所得税额怎么算的
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设