小程序 uniApp 下拉刷新 上拉加载

这篇具有很好参考价值的文章主要介绍了小程序 uniApp 下拉刷新 上拉加载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一,小程序 uniApp 下拉刷新 上拉加载

在小程序和uniapp 中 可以通过 <scrooll-view /> 这个组件来实现 下拉刷新 和 上拉加载的功能 。官方文档

  1. 通过配置 scroll-xscroll-y 可以实现 横向 或纵向的滚动

封装需要被刷新的组件 ListView
​
封装需要被刷新的组件 ListView

<view class="list">
   <navigator class="list-item"  v-for="item in listData" :key="item.id" :url="item.url">
       <view>{{item.content}} </view>
    </navigator>
</view>
 <view class="loading-text"> {{ finish ? '没有更多数据~' : '正在加载...' }} </view>

api 需求 一般会返回一个列表 包含 limit 条数 page 页数 totalPages 总页数(关键就是要这个总页数,去做判断)

const listData = ref([]) // 存放数据

const pageParams ={page:1,limit:10} // 请求分页数据

const finish = ref(false) // 结束标记

// 请求数据
async function getData() {
  if (finish.value) {
    return uni.showToast({ icon: 'none', title: '没有更多数据~' })
  }
  const result = await getListDataApi(pageParams)
  guessList.value.push(...result.items)
    // 判断总页数是否大于 请求的分页条数
  if (result.totalPages > pageParams.page) {
    // 大于 继续累加页数
    pageParams.page++
  } else {
     // 小于 停止累加 
    finish.value = true
  }
}

onMounted(() => {
  getData()
})

// 封装重置数据方法 
const resetData = () => {
  pageParams.page = 1
  listData.value = []
  finish.value = false
}

// 抛出方法
defineExpose({
  resetData,
  getData,
})

下拉刷新

  1. 配置 refresher-enabled 开启自定义下拉刷新

  2. 配置 refresher-triggered 设置下拉刷新的状态 (true 表示下拉刷新已经被触发,false 表示下拉刷新未被触发)

  3. 配置 @refresherrefresh 触发自定义下拉刷新

  4. 下拉刷新的目的 就是 将数据重置更新 往往需要的操作 就是将 当前页面的数据重置 对于固定的数据 只需要重新发起一次请求 ,对于列表数据 只需要清空之前记录的数据 ,在页面更新时在发起请求

​
const isTriggered = ref(false) // 下拉刷新状态
​
 <scroll-view 
    scroll-y
    refresher-enabled
    :refresher-triggered="isTriggered"
    @refresherrefresh="onRefresherrefresh"
 >
   
    <ListView ref="listRef"></ListView>
   
 </scroll-view>
​
​
​
const isTriggered = ref(false) // 下拉刷新状态
​
const listRef = ref(null) // 可以访问组件抛出的数据
​
// 触发下拉刷新 refresherrefresh
async function onRefresherrefresh() {
  // 开启动画 (就那三个 ... 的撒币动画)
  isTriggered.value = true
    
  // 重置猜你喜欢组件数据
  listRef.value.resetData()
  
   // 对其他要下拉更新的数据发起请求
 // await Promise.all([getHomeBannerData(), getCategoryData(), getHomeHot()])
​
  // 关闭动画
  isTriggered.value = false
}
​
​

上拉加载

  1. enable-back-to-top 双击标题栏返回顶部

  2. @scrolltolower 滚动到底部/右边,会触发 scrolltolower 事件文章来源地址https://www.toymoban.com/news/detail-755681.html

 <scroll-view 
    scroll-y
    enable-back-to-top
    @scrolltolower="onScrolltolower"
 >
   
    <ListView ref="listRef"></ListView>
   
 </scroll-view>
​
​
// 上拉加载  只需要 调用组件中 请求列表数据的方法
function onScrolltolower() {
  listRef.value.getData()
}

注意点

需要加上下面这几行 css 不然滚动刷新不触发

<style lang="scss">
// css 要加 不然滚动刷新不触发
page {
  background-color: #f7f7f7;
  height: 100%;
  overflow: hidden;
}
​
.viewport {
  height: 100%;
  display: flex;
  flex-direction: column;
}
​
.scroll-view {
  flex: 1;
  overflow: hidden;
}
</style>

到了这里,关于小程序 uniApp 下拉刷新 上拉加载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp使用自带【刷新方法】与使用【scroll-view】实现下拉刷新上拉加载

    前言:uniapp自带下拉刷新,上拉加载功能基本可以满足刷新需求,但是顶部有状态栏的页面就得进行特殊处理,使用scroll-view解决,状态栏会连带被下拉问题   1、uniapp自带下拉刷新、上拉加载 在page.json中对应页面路由设置【enablePullDownRefresh】值为true(开启下拉刷新) 代码:

    2024年02月11日
    浏览(48)
  • 【uni-app】实现上拉加载

    【场景】 假设你正在开发一款社交软件,用户可以浏览其他用户发布的动态信息。当用户下滑页面查看信息时,如果所有信息都被加载出来了,那么用户无法继续获取新的动态信息。因此,我们需要在这种情况下使用“上拉加载更多”的功能。具体而言,当用户下拉到页面底

    2024年02月07日
    浏览(40)
  • uni-app的Vue.js实现微信小程序的紧急事件登记页面功能

    主要功能实现  完成发生时间选择功能,用户可以通过日期选择器选择事件发生的时间。 实现事件类型选择功能,用户可以通过下拉选择框选择事件的类型。 添加子养殖场编号输入框,用户可以输入与事件相关的子养殖场编号。 完成事件描述输入功能,用户可以通过文本输

    2024年02月12日
    浏览(61)
  • 微信小程序 上列表拉加载下拉刷新

      上拉加载和下拉刷新是小程序开发的常见需求。本文将介绍如何在微信小程序中实现上拉加载和下拉刷新的功能,为用户带来更加流畅、便捷的使用体验。 微信小程序 上列表拉加载下拉刷新 (1) 首先需要在使用到的 json 文件下配置 “enablePullDownRefresh”: true (2) 在 js 文件

    2024年01月16日
    浏览(57)
  • uni-app 微信小程序刷新token,无感登录

    描述:         后端token每5分钟刷新一次,需要给注册过的用户无感登录,当接口403或401后,刷新token并且重新发起所有403或401请求 我的实现  参照: 参照链接uniapp+uview(luch-request)无痛刷新token - 掘金 (juejin.cn)

    2024年02月15日
    浏览(62)
  • 微信小程序-上拉加载更多和下拉刷新

    页面配置文件中配置 \\\"enablePullDownRefresh\\\": true 开启下拉刷新 设置 onPullDownRefresh 方法 在用户下拉时会调用 onPullDownRefresh 方法 在完成后需要调用 wx.stopPullDownRefresh() 关闭刷新状态 可以在页面配置文件中配置 \\\"onReachBottomDistance\\\":50 来设置触发上拉加载的距离,单位为 px 。 默认:

    2024年02月15日
    浏览(44)
  • uniapp开发使用插件z-paging实现页面下拉刷新、上拉加载,分页加载

    在uniapp官网有一个比较好用的插件z-paging,可以实现多条数据滚动显示或者自定义下拉刷新,分页显示......在开发消息页面或者app开发需要大量的页面刷新,页面内容过长,减轻服务器的负担就可以使用此插件,进入app智慧加载部分内容,等到再次需要之后的内容就再次加载

    2024年02月11日
    浏览(54)
  • uni-app小程序刷新当前页面的两种方法

    方法一 wx.relaunch来刷新当前页面,页面会被重载,若路由携带参数需自行拼接,方法如下 (如果用电脑打开小程序,该方法有bug) 上面是获取页面路由和参数的方法,具体使用如下 方法二(推荐) 通过获取该页面实例执行其内部的生命周期方法来刷新页面

    2024年02月12日
    浏览(55)
  • uni-app小程序父组件数据更新,实现自定义组件刷新视图

    之前错误的思路 新思路(忽略我的参数命名,写文章的时候方便。)

    2024年02月16日
    浏览(51)
  • 微信小程序 下拉分页 z-paging下拉刷新、上拉加载

    【z-paging下拉刷新、上拉加载】高性能,全平台兼容。支持虚拟列表,支持nvue、vue3 - DCloud 插件市场  z-paging,使用非常简单,按部就班就行了 1,首先将其导入自己的小程序项目中  导入后的效果 2,具体如何使用:https://z-paging.zxlee.cn    选项式api写法(vue2/vue3) 组合式api写法

    2024年02月11日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包