应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

uni-app 上拉加载与下拉刷新

205人阅读 2023/9/18 11:43 总访问:5182927 评论:0 收藏:0 手机
分类: 移动开发

使用 onPullDownRefresh与onReachBottom实现上拉加载与下拉刷新

onReachBottom的官方介绍:https://uniapp.dcloud.net.cn/tutorial/page.html#onReachBottom

onPullDownRefresh的官方介绍:
https://uniapp.dcloud.net.cn/api/ui/pulldown.html#onpulldownrefresh

onPullDownRefresh

在 js 中定义 onPullDownRefresh 处理函数(和onLoad等生命周期函数同级),监听该页面用户下拉刷新事件。

  • 需要在 pages.json 里,找到的当前页面的pages节点,并在 style 选项中开启 enablePullDownRefresh。
  • 当处理完数据刷新后,uni.stopPullDownRefresh 可以停止当前页面的下拉刷新。
  1. {
  2. "path": "pages/circles/index",
  3. "style": {
  4. "navigationBarTitleText": "成长圈",
  5. "navigationStyle": "custom",
  6. // 开启 enablePullDownRefresh
  7. "enablePullDownRefresh": true,
  8. }
  9. },

onReachBottom

可在pages.json里定义具体页面底部的触发距离onReachBottomDistance,
比如设为50,那么滚动页面到距离底部50px时,就会触发onReachBottom事件。比如下面把onReachBottomDistance距离配置为100

  1. {
  2. "path": "pages/circles/index",
  3. "style": {
  4. "navigationBarTitleText": "成长圈",
  5. "navigationStyle": "custom",
  6. "enablePullDownRefresh": true,
  7. "onReachBottomDistance": 100
  8. }
  9. },

在vue3中监听上述的两个方法

  1. <script setup lang="ts">
  2. import { onPullDownRefresh, onReachBottom } from '@dcloudio/uni-app'
  3. // 上拉刷新
  4. onPullDownRefresh(() => {
  5. console.log("上拉刷新!")
  6. })
  7. // 下拉加载下一页
  8. onReachBottom(() => {
  9. console.log("下拉加载!")
  10. })

基础的使用

  1. <template>
  2. <view class="container">
  3. <view>
  4. ......解析数据
  5. </view>
  6. <uni-load-more :status="state.pageInfo.lmStatus" />
  7. </view>
  8. </template>
  9. <script setup lang="ts">
  10. import { ref, reactive } from 'vue'
  11. import http from '@/common/request.ts'
  12. import { onShow } from '@dcloudio/uni-app'
  13. import { onPullDownRefresh, onReachBottom } from '@dcloudio/uni-app'
  14. const state = reactive({
  15. pageInfo: {
  16. totalCount: 0,
  17. totalPage: 0,
  18. lmStatus: 'more',
  19. pageIndex: 1,
  20. pageSize: 6,
  21. }
  22. })
  23. // 上拉刷新
  24. onPullDownRefresh(() => {
  25. state.pageInfo.pageIndex=1
  26. state.dataList = [] // 刷新的时候要清空掉原有的数据
  27. getDataList()
  28. })
  29. // 下拉加载下一页
  30. onReachBottom(() => {
  31. state.pageInfo.pageIndex++
  32. if (state.pageInfo.pageIndex <= state.pageInfo.totalPage)
  33. {
  34. getDataList()
  35. }
  36. })
  37. onShow(() => {
  38. getDataList()
  39. })
  40. const getDataList = async () => {
  41. state.pageInfo.lmStatus = 'loading'
  42. var res: any = await http.get('/growing/api/StuTaskPhone/GrowingCircles', { PageIndex:state.pageInfo.pageIndex, PageSize: state.pageInfo.pageSize })
  43. console.log("看看请求的数据....", res)
  44. // state.dataList = res.data.data
  45. // 没有数据就是赋值即可
  46. if(state.dataList.leng===0)
  47. {
  48. state.dataList = res.data.data
  49. }
  50. // 有数据就是追加
  51. else
  52. {
  53. state.dataList = [...state.dataList,...res.data.data]
  54. }
  55. state.pageInfo.totalCount = res.data.dataCount
  56. state.pageInfo.totalPage = Math.ceil(res.data.dataCount / state.pageInfo.pageSize)
  57. if (state.pageInfo.pageIndex >= state.pageInfo.totalPage) state.pageInfo.lmStatus = 'noMore'
  58. else state.pageInfo.lmStatus = 'more'
  59. }
  60. </script>

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

uni-app开始时间与结束时间(结束时间大于开始时间)picker编写

利用uni-app官网里面picker插件代码当点击开始时间后结束时间要大于选择后的开始时间,点击结束时间后开始时间要小于开始时...

uni-app用法与html标签的变化

以前是html标签,比如,现在是小程序组件,比如。那么标签和组件有什么区别,不都是用尖括号包围起来一段英文吗?其实标签...

uni-app无法导入插件

点击网页中右上角的插件导入,可以打开项目,但是就是无法导入插件。是因为,要登录!hbuilder里边也要登录才行,他这个应...

使用uni-app的云端一体插件

初次使用uni-app的云端一体插件步骤还是有点多,也有一些坑,在这里把使用过程记录一下。 一:先下载需要的插件在插件右上...

uni-app中list插件图标问题

如图:他使用uni-icons实现的如果只有text就不会有图标有时候贴的文档不是太完善,还是要下一个完整的插件来对比一下

uni-app发起请求

代码如下:uni.request({ url:&#39;接口地址&#39;, success:(result)=&gt;{ my.lists=result.data; } })注意你的...

uni-app官方文档

https://uniapp.dcloud.io/

uni-app运行与调试

上边有菜单,可以运行到浏览器,也可以运行到内置浏览器运行到内置浏览器的效果:

uni-app引入外部资源,引入外网样式

很简单代码如下:&lt;style&gt; @import&#39;http://image.tnblog.net/amazeui.min.css&#39;; &lt;/style&gt; &lt;st...

uni-app设置起始页

很简单,在pages.json里边配置即可。

uni-app页面无法跳转问题

首先检查一下有没有在pages里边配置没有配置不行的哦或者看看你的跳转方式对不对,如果跳转的是底部菜单,但是你用的是uni....

uni-app 删除失败 setting denied access to....

删除的时候如果文件夹下面还有页面,这样直接删除文件夹是会报错的:删除失败 setting denied access to....这种情况就直接...

uni-app中引入外部js

可以使用代码如下:varscript=document.createElement(&#39;script&#39;); script.src=&quot;http://image.tnblog.net/jqu...

uni-app dom操作

比如引入外部js需要用到的dom操作:varscript=document.createElement(&#39;script&#39;); script.src=&quot;http://image....

uni-app使用web-view引入页面

代码如下:&lt;template&gt; &lt;viewclass=&quot;h5-html&quot;&gt; &lt;web-view:webview-styles=&quot;webviewStyl...

uni-app真机调试

很简单只要手机开启了usb调试,然后hbuilderx会自动获取到手机的然后运行到手机即可华为手机开启use调试:一直点击版本号进...