您现在的位置是:网站首页> 编程资料编程资料
uniapp实现上拉加载更多功能的全过程_javascript技巧_
2023-05-24
356人已围观
简介 uniapp实现上拉加载更多功能的全过程_javascript技巧_
一、添加全部
1.在主页面中添加一列
data.unshift({ name:'全部' }) //添加一列 ‘全部'

2.改云函数
(累了 直接上代码)这里match匹配空对象相当于全部哈
'use strict'; const db=uniCloud.database()//1.创建引用 exports.main = async (event, context) => { //event为客户端上传的参数 const { name } = event//等同 var name=event.name let 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.插件市场导入 加载中组件
二、实现上拉加载
上拉加载实际上把一页分成好几页来加载,拉一下就加载一点点 就这样
1.云函数中可以接收参数
'use strict'; const db=uniCloud.database()//1.创建引用 exports.main = async (event, context) => { //event为客户端上传的参数 const { name, page = 1, pageSize = 10 } = event//等同 var name=event.name let 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.获取下拉事件
传呀传
methods:{ loadmore(){ this.$emit('loadmore') } }传呀传

传到头啦

3.写触发这个下拉干嘛
loadmore() { if (this.load[this.activeIndex].loading === 'noMore') return this.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 } = res if (data.length === 0) { let oldLoad = {} oldLoad.loading = 'noMore' oldLoad.page = this.load[current].page this.$set(this.load, current, oldLoad) // 强制渲染页面 this.$forceUpdate() return } let oldList = this.listCatchData[current] || [] oldList.push(...data) this.$set(this.listCatchData, current, oldList) }) }完整代码:
在 显示加载中的组件里面
总结
到此这篇关于uniapp实现上拉加载更多功能的文章就介绍到这了,更多相关uniapp上拉加载更多内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
相关内容
- Vue Echarts实现实时大屏动态数据显示_vue.js_
- vue+axios methods方法return取不到值问题及解决_vue.js_
- ToB项目如何沉淀业务公共组件示例详解_vue.js_
- vue中关于click.stop的用法_vue.js_
- 关于@click.native中 .native 的含义与使用方式_vue.js_
- Vue组件上使用v-model之单选框_vue.js_
- 纯 JS 实现的轻量化图片编辑器实例详解_javascript技巧_
- JavaScript装饰器的实现原理详解_javascript技巧_
- Vue如何给组件添加点击事件 @click.native_vue.js_
- vue如何给组件动态绑定不同的事件_vue.js_
