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

  • 固定资产抵扣增值税何时开始
  • 抄税 报税 清卡
  • 进口关税的计算方式
  • 消费税的会计分局
  • 不在经营范围内可以开票吗
  • 在业跟续存有什么不一样
  • 设备采购及安装属于工程还是货物
  • 销项税额是不是开出去的发票金额
  • 因技术原因淘汰的财产形成的损失需备案吗
  • 损益类算费用吗
  • 产权转让与股权转让
  • 服务业如何确定收入
  • 行政事业单位核算短期投资时有关预算会计核算正确的是
  • 商品周转天数和周转率
  • 计提企业年度所得税
  • 营业账簿印花税包括什么
  • 财税[2010]121号中的宗地容积率指的是什么?
  • 金税盘不能清卡是啥原因
  • 物业管理费属于应付账款吗
  • 所得税按利润总额的25%计算缴纳
  • 电子银行承兑汇票如何贴现
  • 总部员工调往下属单位
  • 哪些票据可以冲抵增值税
  • 企业管理服务公司是中介吗
  • 发票可以作为原始凭证吗
  • 开发企业土地使用税计算方法
  • 企业为员工缴纳社保可以抵税吗
  • 华为手机hms提醒
  • 分期服务费是啥
  • 库存车转入固定资产
  • 汇算清缴租赁费包括物业管理吗
  • 简易计税分包抵减
  • 如何激活windows10免费
  • 移动操作系统有哪些主要特点和功能
  • 购货方收到红字发票怎么报税
  • 企业个人借款利息怎么做账
  • 个体工商户筹集资金的难易程度
  • 设计部工资计入什么费用
  • 收回前欠货款存入银行的会计分录
  • vue err
  • 内资企业
  • 房地产企业预缴增值税如何申报
  • 小规模纳税人开普票要交税吗
  • 应付票据是商业承兑汇票吗
  • 购买的烟酒怎么入账
  • 工资薪金与劳务报酬的区别有哪些
  • 房地产项目转让流程
  • 公司吸收合并流程详细步骤
  • 开票人是管理员可以报销吗
  • mysql用中文字段
  • 对外担保产生诉讼费用吗
  • 汇算清缴需要做账吗
  • 公司认缴没有实缴会有什么风险
  • 退回投标保证金在投诉阶段怎么办
  • 信用卡什么情况下会降额度
  • 专票入账用哪一联
  • 定额发票和增值税普通发票的区别
  • 给对方承兑对方不承认怎么办
  • 企业支付宝问题解决
  • 机械租赁怎么开9个点
  • 利用公式计算填空题
  • mysql新手入门
  • 常用的linux发行版本有哪些
  • win8系统怎么重新安装系统
  • 防止非法使用计算机,可口令
  • 优质推荐
  • xcopy /s /e
  • dirsearch批量
  • 用jquery
  • python发送mq消息
  • java性能调优实战 网盘
  • 置顶聊天折叠怎么开启
  • 细说javascript
  • jquery foreach循环
  • javascripr
  • javascript修改
  • 专票单张限额多少
  • 联合举办的活动
  • 消费税的税收筹划ppt
  • 南京政务服务中心
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设