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

  • 华为gt3pro电池容量(华为watch3电池)

    华为gt3pro电池容量(华为watch3电池)

  • 苹果x怎么长截屏(苹果x怎么长截图怎么弄)

    苹果x怎么长截屏(苹果x怎么长截图怎么弄)

  • iphonex听筒声音小解决方法(iphonex听筒声音很小扬声器正常)

    iphonex听筒声音小解决方法(iphonex听筒声音很小扬声器正常)

  • 网易云怎样下载歌曲到手机上(网易云怎样下载带歌词的mp3)

    网易云怎样下载歌曲到手机上(网易云怎样下载带歌词的mp3)

  • iphonex插充电器没反应怎么回事(iphonex充电器插头)

    iphonex插充电器没反应怎么回事(iphonex充电器插头)

  • 华为b5怎么接听电话(华为b5怎么接听语音电话)

    华为b5怎么接听电话(华为b5怎么接听语音电话)

  • 手机保修范围包括什么(手机保修范围包括碎屏吗)

    手机保修范围包括什么(手机保修范围包括碎屏吗)

  • 5s和se屏幕通用吗(5s和se的屏幕是一样的吗)

    5s和se屏幕通用吗(5s和se的屏幕是一样的吗)

  • 手机不小心恢复了出厂设置还能还原之前吗(手机不小心恢复出厂设置了怎么还原照片)

    手机不小心恢复了出厂设置还能还原之前吗(手机不小心恢复出厂设置了怎么还原照片)

  • 微信如何换回白色主题(微信如何换回白屏模式)

    微信如何换回白色主题(微信如何换回白屏模式)

  • 华为mate30使用的是什么马达(华为mate30有什么新功能)

    华为mate30使用的是什么马达(华为mate30有什么新功能)

  • 微信最长能打多久电话(微信最长能打多长的视频)

    微信最长能打多久电话(微信最长能打多长的视频)

  • 微信即刻视频是什么(微信即刻视频是什么意思)

    微信即刻视频是什么(微信即刻视频是什么意思)

  • powerbi和excel区别(powerbi和powerquery)

    powerbi和excel区别(powerbi和powerquery)

  • 快手怎么快速取消关注(快手怎么快速取消收藏)

    快手怎么快速取消关注(快手怎么快速取消收藏)

  • iphone6怎么更换软件图标(iphone6怎么更换壁纸)

    iphone6怎么更换软件图标(iphone6怎么更换壁纸)

  • 网易云怎么购买单曲(网易云怎么购买专辑)

    网易云怎么购买单曲(网易云怎么购买专辑)

  • 手机呼吸灯变蓝无法开机(手机呼吸灯变成蓝色是什么意思)

    手机呼吸灯变蓝无法开机(手机呼吸灯变成蓝色是什么意思)

  • 手机桌面文件夹怎么加密(手机桌面文件夹怎么改名字)

    手机桌面文件夹怎么加密(手机桌面文件夹怎么改名字)

  • 韩剧tv要怎么切换线路(韩剧tv怎么切换线路)

    韩剧tv要怎么切换线路(韩剧tv怎么切换线路)

  • xsmax支不支持快充(iphonexsmax支不支持快充)

    xsmax支不支持快充(iphonexsmax支不支持快充)

  • 如何限制95开头的电话(怎样设置95开头的号码进黑名单)

    如何限制95开头的电话(怎样设置95开头的号码进黑名单)

  • 智能键盘和蓝牙键盘的区别(连接智能键盘)

    智能键盘和蓝牙键盘的区别(连接智能键盘)

  • 红米note7wifi断流如何解决(红米note wifi断流)

    红米note7wifi断流如何解决(红米note wifi断流)

  • wps可以做word文档吗(wps可做word吗)

    wps可以做word文档吗(wps可做word吗)

  • cpu和gpu已过时,npu和apu的时代开始(cpu占满gpu不工作)

    cpu和gpu已过时,npu和apu的时代开始(cpu占满gpu不工作)

  • 两年前的发票可以补开吗
  • 固定资产清理的账务处理
  • 主营业务成本大于生产成本
  • 借款应付利息计算
  • 坏账转销会计分录应收帐款金额怎么写
  • 当月计提的工资与次月发放数不同
  • 垫资后转出的会计分录怎么写?
  • 预计负债计提时调减还是调增
  • 未到期责任准备金计算方法
  • 以资抵债是利空还是利好
  • 营业外支出税前可以扣除吗
  • 公司筹建期的个税怎么交
  • 如何查询企业开票记录
  • 股权转让过程中需要注意哪些问题
  • 增值税发票确认时间
  • 转出未交增值税科目
  • 出口销售收入记账方法有哪些?
  • 固定资产入账的方式
  • 单位应当为职工创造有益于健康的环境和条件
  • tplink路由器怎么连接无线网络
  • linux添加系统用户命令
  • 给予减免
  • et.exe进程占用
  • b/s架构的正确解释方式
  • php抽象函数
  • 开票收款人在哪里设置
  • 淘宝买建材
  • 城建税减征50%
  • 编程主要学什么东西
  • promise thenable
  • 数据挖掘期末考试大纲
  • python中函数的用法
  • 个税系统如何申报个税
  • python 嵌入
  • node.js最新版本
  • 床垫可以开专票抵扣吗
  • 长期待摊当期发票怎么开
  • 劳务公司的账务怎么做
  • PYTHON中使用什么符号表示单行注释
  • hadoop集群状态
  • 长期股权投资采用成本法核算的,应按被投资单位
  • 未发工资怎么办
  • 小规模纳税人购买税控设备
  • 白酒消费税计税价格由谁核定
  • 小规模纳税人申报纳税详细流程
  • 小规模企业申报表填写
  • 以前年度损益调整怎么做账
  • 建筑行业的收入做什么科目
  • 旅游费计入什么会计科目
  • 企业发展基金返还条件
  • 材料入库单金额写含税价吗
  • 税金及附加如何记账
  • sql 修改表的字段名称
  • Mysql中LAST_INSERT_ID()的函数使用详解
  • MySQL slave_net_timeout参数解决的一个集群问题案例
  • sql刷新快捷键
  • Mac下mysql 5.7.13 安装配置方法图文教程
  • 如何把virtualbox虚拟机里面的文件传到主机
  • 快速任务栏
  • win73d设置怎么设置
  • win7玩游戏卡吗
  • ubuntu linux指南:基础篇
  • 如何给windowsXP磁盘加密码
  • xp如何禁用445
  • win10鼠标怎么换
  • windows 10预览版
  • fragment懒加载原理
  • vim按键
  • unity3d 帧同步
  • android图形架构
  • javascript高级程序设计电子书
  • javascript 进阶篇1 正则表达式,cookie管理,userData
  • 简述javascript
  • 湖南省五一劳动奖章
  • 企业填写莞e申报的通知
  • 税务局全年绩效分析报告
  • 百旺税控客服电话
  • 企业所得税忘记计提了做到下个月可以吗
  • 越南进口废塑料新政策
  • 宁阳旧城改造名单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设