位置: 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云计算技能认证)

  • 笔记本无线网卡怎么开启(笔记本无线网卡设置)(笔记本无线网卡坏了怎么办)

    笔记本无线网卡怎么开启(笔记本无线网卡设置)(笔记本无线网卡坏了怎么办)

  • ipad怎么左右两个屏(ipad怎么设置左右滑动)

    ipad怎么左右两个屏(ipad怎么设置左右滑动)

  • 抖音蚂蚁呀嘿特效怎么做步骤(抖音蚂蚁呀嘿特效用什么软件)

    抖音蚂蚁呀嘿特效怎么做步骤(抖音蚂蚁呀嘿特效用什么软件)

  • 手机更新后没声音了怎么办(手机更新完系统没声音了)

    手机更新后没声音了怎么办(手机更新完系统没声音了)

  • 取消了gprs会影响什么(关掉gprs还可以上网吗)

    取消了gprs会影响什么(关掉gprs还可以上网吗)

  • 支持ipad pencil的ipad有哪些(支持pencil的平板)

    支持ipad pencil的ipad有哪些(支持pencil的平板)

  • 全民k歌歌房支持耳返吗(全民k歌k房)

    全民k歌歌房支持耳返吗(全民k歌k房)

  • vivo演示机是什么意思(vivo 演示机)

    vivo演示机是什么意思(vivo 演示机)

  • qq扩列匹配失败是什么原因(qq扩列匹配失败匹配失败)

    qq扩列匹配失败是什么原因(qq扩列匹配失败匹配失败)

  • 手机中框是哪个位置(手机中框哪个材质最好)

    手机中框是哪个位置(手机中框哪个材质最好)

  • iphonexs广角镜头怎么打开(苹果xs0.5广角)

    iphonexs广角镜头怎么打开(苹果xs0.5广角)

  • 华为mate20怎样调大音量(华为mate20怎么自动调节亮度)

    华为mate20怎样调大音量(华为mate20怎么自动调节亮度)

  • 京东怎么删除自己评论(京东怎么删除自己评价)

    京东怎么删除自己评论(京东怎么删除自己评价)

  • 网易云剪辑的铃声文件在哪(网易云剪辑的铃声文件在哪个文件夹)

    网易云剪辑的铃声文件在哪(网易云剪辑的铃声文件在哪个文件夹)

  • 取消断字,换行设置(段落设置取消断字,换行设置为怎么设置)

    取消断字,换行设置(段落设置取消断字,换行设置为怎么设置)

  • b-f3电池是什么手机(b-b3电池是什么型号手机)

    b-f3电池是什么手机(b-b3电池是什么型号手机)

  • 左右镜像怎么拍(左右镜像照片怎么弄)

    左右镜像怎么拍(左右镜像照片怎么弄)

  • 苹果8后面玻璃碎了怎么办(苹果8后面玻璃换了有什么影响)

    苹果8后面玻璃碎了怎么办(苹果8后面玻璃换了有什么影响)

  • 华为p30屏幕刷新率(华为p30屏幕刷新率怎么设置)

    华为p30屏幕刷新率(华为p30屏幕刷新率怎么设置)

  • 拼多多取钱链接在哪里(拼多多提现的链接怎么找到复制)

    拼多多取钱链接在哪里(拼多多提现的链接怎么找到复制)

  • p30nfc怎么用(华为p30nfc功能怎么用)

    p30nfc怎么用(华为p30nfc功能怎么用)

  • word2016的剪贴画在哪(word2021的剪贴画)

    word2016的剪贴画在哪(word2021的剪贴画)

  • 快手怎么开ktv歌房(快手怎么开ktv歌曲)

    快手怎么开ktv歌房(快手怎么开ktv歌曲)

  • 华为感应黑屏怎么取消(华为感应黑屏怎么取消nova7)

    华为感应黑屏怎么取消(华为感应黑屏怎么取消nova7)

  • 魅族怎么删除联系人(魅族手机怎么一次性删除联系人)

    魅族怎么删除联系人(魅族手机怎么一次性删除联系人)

  • 华为mate20支持双微信吗(华为mate20支持双频GPS吗)

    华为mate20支持双微信吗(华为mate20支持双频GPS吗)

  • msiexec.exe是什么进程介绍

    msiexec.exe是什么进程介绍

  • 深度学习中模型计算量(FLOPs)和参数量(Params)的理解以及四种计算方法总结

    深度学习中模型计算量(FLOPs)和参数量(Params)的理解以及四种计算方法总结

  • 出口退税 系统
  • 进项税转出从待认证到月末结转的会计分录是
  • 购入生产设备的增值税计入成本吗
  • 血液制品3%增值税税率
  • 形式发票怎么写
  • 税务记账保存多少年纳税人转小规模
  • 出租不动产房屋交什么税
  • 购买成品入库并结转成本会计分录怎么写?
  • 政府给予的工业支出
  • 结转预交增值税会计处理
  • 股东货币出资比例
  • 超额库存现金
  • 老板请员工吃饭唯独没叫你是什么意思
  • 公司办公室租赁费会计分录
  • 贸易公司给客户开发票
  • 企业租车费用怎么处理方法
  • 差额征税扣除额大于收入时如何开票?
  • 公司委托法人代收款
  • 对外投资增长过快
  • 大额联行号和开户行号是一样的吗
  • 固定资产内部调拨流程
  • 展会门票入什么科目
  • 留抵的进项税可以退吗
  • 赠送礼品的具体做法有许多技巧和讲究大致涉及
  • 如何使用U盘启动盘进行分区
  • 农业公司的会计分录
  • 代扣代缴的增值税可以作为进项税抵扣吗
  • 花卉盆景苗木
  • 我想设置应用
  • iphone系统推送
  • 配置path环境变量
  • 抵押房产的保险能退吗
  • windows7便签删除了怎么恢复
  • 其他应付款的核算范围包括应付短期租赁
  • PHP:pg_client_encoding()的用法_PostgreSQL函数
  • 滞纳金和罚金计入哪个会计科目
  • 阳光照耀下的人
  • 科研项目财政拨款多少
  • 如何用php
  • vue写的购物车详细步骤
  • 2023英伟达显卡天梯图完整版
  • zip 压缩命令
  • 新的企业所得税
  • 人力资源企业税收风险
  • 企业缴纳职工社保需要每月去社保局吗
  • 营业收入和营业外收入的区别
  • 织梦自定义表单diy.php更改名字
  • mysql日期和时间类型
  • 工会经费按应发还是实发缴纳
  • 房地产企业根据什么交增值税
  • 核定征收的情况包括
  • 开票金额为什么是负数
  • 财务软件是有哪些软件
  • 在建工程进项税额抵扣最新通知
  • 房地产企业沙盘模拟
  • 以考核为由扣除工资
  • 应付账款在贷方负数
  • 电子发票显示错误信息是什么原因
  • 企业租入设备的会计分录怎么写
  • 混合销售行为的概念
  • 医药进销存管理系统
  • 应付工资的计算公式用友
  • 采取分期收款方式
  • 预缴增值税扣除额用填写吗
  • 备受大家关注的成语
  • win8不识别u盘
  • xp附件游戏
  • 快速释放剪贴蒙版快捷键
  • solaris11.4安装教程
  • windows登录密码设置
  • centos创建lv
  • xp系统的程序和功能在哪里
  • mac键盘图标与对应不匹配
  • linux邮件设置方法
  • opengl 顶点
  • config_system_switchs
  • 批处理应用实例
  • linux shell获取ip地址
  • jquery点击方法
  • 物业优质服务我们在行动
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设