uniapp 中如何实现上拉加载,下拉刷新?

在uniapp中,可以使用uni-scroll-view组件结合onReachBottom和onPullDownRefresh事件实现下拉刷新和上拉加载。下拉刷新在用户向下拉动页面时触发数据更新,上拉加载则在用户滚动到底部时加载更多数据。文章提供了代码示例来说明如何配置和使用这些功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 uniapp 中,可以通过使用下拉刷新组件和上拉加载组件来实现上拉加载和下拉刷新。

1.onReachBottom 上拉时到底部多少距离触发的事件

2.onPullDownRefresh     下拉后触发的事件

下拉刷新

原理:在页面顶部添加一个下拉刷新区域,当用户向下拉动页面时,触发下拉刷新事件,执行相应的数据更新操作。

代码演示:

  1. 在页面中添加下拉刷新组件
<template>
  <view>
    <!-- 下拉刷新组件 -->
    <uni-scroll-view refresher-enabled refresher-triggered="@refreshData" :style="{height: winHeight + 'px'}">
      <view v-for="(item,index) in dataList" :key="index">{{item}}</view>
    </uni-scroll-view>
  </view>
</template>

      2.在页面中添加下拉刷新事件处理函数,更新数据

<script>
export default {
  data() {
    return {
      dataList: [],
      winHeight: 0 // 页面高度
    }
  },
  onReady() {
    // 获取页面高度,用于设置下拉刷新组件高度
    uni.getSystemInfo({
      success: (res) => {
        this.winHeight = res.windowHeight
      }
    })
  },
  methods: {
    refreshData() {
      // 模拟数据更新
      setTimeout(() => {
        this.dataList = ['1', '2', '3']
        uni.stopPullDownRefresh() // 停止下拉刷新动画
      }, 1000)
    }
  }
}
</script>

上拉加载

原理:在页面底部添加一个触底加载区域,当用户滚动到底部时,触发触底加载事件,执行相应的数据更新操作。

代码演示:

  1. 在页面中添加上拉加载组件
<template>
  <view>
    <uni-scroll-view :style="{height: winHeight + 'px'}" scroll-y @scrolltolower="@loadMoreData">
      <view v-for="(item,index) in dataList" :key="index">{{item}}</view>
      <!-- 上拉加载组件 -->
      <view v-if="showLoading" class="loading">{{loadingText}}</view>
    </uni-scroll-view>
  </view>
</template>

     2.在页面中添加加载更多数据事件处理函数,更新数据

<script>
export default {
  data() {
    return {
      dataList: [],
      winHeight: 0, // 页面高度
      showLoading: false, // 是否展示加载中提示
      loadingText: '加载中,请稍后' // 加载中提示文本
    }
  },
  onReady() {
    // 获取页面高度,用于设置滚动区域高度
    uni.getSystemInfo({
      success: (res) => {
        this.winHeight = res.windowHeight
      }
    })
  },
  methods: {
    loadMoreData() {
      if (!this.showLoading) {
        this.showLoading = true // 展示加载中提示
        // 模拟加载更多数据
        setTimeout(() => {
          let newData = ['4', '5', '6']
          this.dataList = this.dataList.concat(newData)
          this.showLoading = false // 隐藏加载中提示
        }, 1000)
      }
    }
  }
}
</script>

以上代码演示中,uni-scroll-view 是 uniapp 中的一个滚动组件,配合下拉刷新和上拉加载组件使用,可以实现下拉刷新和上拉加载效果。在上拉加载的代码演示中,loading 提示可以通过 CSS 样式来进行自定义。

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

破裤兜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值