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

  • 财务软件大概多少钱
  • 印花税减免退税会计分录
  • 资产减值损失为什么不能转回
  • 成品油经销企业开具的成品油电子专用发票
  • 企业有哪些行为
  • 增值税调整后开具发票
  • 租的办公室要交税么
  • 弥补以前年度亏损税局会查吗
  • 认缴制下实收资本如何缴纳印花税
  • 银行存款日记账最后一行怎么填
  • 转让购入的设备税率
  • 高速公路通行费专用发票可以抵扣吗
  • 餐饮消费,碰到商家不愿意开发票怎么办?
  • 营改增文化体育服务包括哪些
  • 母公司代付子公司费用的委托书
  • 工程费用包括哪几类
  • 持续经营净利润和扣非净利润
  • 企业怎样信用升级
  • 以前年度暂估
  • 分期收款发出商品属于什么科目
  • 计提小规模增值税的账务处理
  • 有哪些分享方式
  • 进货折扣是怎么计算
  • win10无法运行软件怎么回事
  • php echo \n
  • timit数据集
  • cpqdfwag.exe是什么进程 能结束吗 cpqdfwag进程查询
  • syms命令
  • vue set-cookie
  • 前端的基本知识
  • python进行数学建模
  • 金税盘密码和口令忘了无法登录
  • c语言怎么给函数传递数组
  • php usort函数
  • 更新php文件
  • 总结帝国cms内容是什么
  • 税负率过低犯法吗
  • 营改增后房屋租赁税变化
  • 股东分红账务处理表格
  • 防伪税控技术
  • 车辆购置税多少个点?
  • 应收账款全额计提的条件
  • 确认资产减值损失后可以转回的
  • 少计提的税费如何补提
  • 应收账款增加给哪一方
  • 对公帐户资金转入个人帐户规定
  • 企业银行贷款保证金多少
  • 生产成本福利费如何分摊
  • 暂估入库产品销售结转成本
  • 进口增值税与关税的关系
  • 个体户做账流程新手必看
  • 收到实收资本会计摘要
  • 公司注销剩余的存货怎么处理
  • 明细分类账怎么做表格
  • 跨月发票作废怎么做会计分录
  • Win10 64位系统下鼠标右键刷新没反应的解决方案
  • ubuntu系统如何安装
  • 用ultraiso制作u盘启动盘
  • bios密码忘记了要怎么重置
  • 自己的磁盘
  • imac触发角
  • linux端口流量监控
  • win7误删我的文档
  • linux在实际工作中的应用
  • win8 Could not load type System.ServiceModel.Activation.HttpModule 错误解决方案
  • 批处理语言 从入门到精通
  • ant编译工具
  • opengl 透视投影
  • ActivityManagerService 启动
  • jni静态注册和动态注册
  • jquery滚动到底部加载数据
  • Android自定义控件开发入门与实战 百度网盘
  • python如何切行
  • javascript文档对象
  • 捐赠收入如何交印花税
  • 税务 信息
  • acfunp
  • 乌鲁木齐市公立幼儿园有哪些
  • 车辆购置税退税申请表
  • 国税局对出口退税的要求
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设