当前位置:首页 > uni-app

uniapp底部翻页

2026-02-05 23:58:39uni-app

uniapp实现底部翻页功能

在uniapp中实现底部翻页功能通常需要结合滚动视图和分页逻辑。以下是几种常见实现方式:

滚动视图结合触底加载

使用scroll-view组件监听触底事件实现分页加载:

<template>
  <scroll-view 
    scroll-y 
    @scrolltolower="loadMore"
    style="height: 100vh">
    <!-- 列表内容 -->
    <view v-for="item in list" :key="item.id">
      {{ item.content }}
    </view>

    <!-- 加载状态 -->
    <view v-if="loading" class="loading">加载中...</view>
    <view v-if="noMore" class="no-more">没有更多了</view>
  </scroll-view>
</template>

分页数据请求逻辑

实现分页加载的核心JavaScript逻辑:

export default {
  data() {
    return {
      list: [],
      page: 1,
      pageSize: 10,
      loading: false,
      noMore: false
    }
  },
  methods: {
    async loadData() {
      if (this.loading || this.noMore) return

      this.loading = true
      try {
        const res = await api.getList({
          page: this.page,
          pageSize: this.pageSize
        })

        if (res.data.length) {
          this.list = this.list.concat(res.data)
          this.page++
        } else {
          this.noMore = true
        }
      } finally {
        this.loading = false
      }
    },
    loadMore() {
      this.loadData()
    }
  },
  mounted() {
    this.loadData()
  }
}

优化加载提示

可以添加更友好的加载状态提示:

.loading, .no-more {
  padding: 20rpx;
  text-align: center;
  color: #999;
}
.loading {
  display: flex;
  justify-content: center;
  align-items: center;
}

使用页面生命周期

在页面生命周期中处理分页重置:

onPullDownRefresh() {
  this.page = 1
  this.list = []
  this.noMore = false
  this.loadData().finally(() => {
    uni.stopPullDownRefresh()
  })
}

第三方组件方案

可以使用uni-ui中的load-more组件简化实现:

uniapp底部翻页

<template>
  <view>
    <uni-list>
      <uni-list-item v-for="item in list" :title="item.title" />
    </uni-list>
    <uni-load-more :status="loading ? 'loading' : noMore ? 'noMore' : 'more'" />
  </view>
</template>

注意事项

  • 需要处理网络请求失败的情况
  • 避免重复请求
  • 列表数据较多时考虑虚拟列表优化
  • 安卓平台可能需要额外处理滚动性能问题

以上方案可以根据实际项目需求选择或组合使用。对于复杂场景,还可以考虑使用专门的列表组件如mescroll-uni等第三方解决方案。

标签: 翻页uniapp
分享给朋友:

相关文章

uniapp隐藏滚动条

uniapp隐藏滚动条

在UniApp中隐藏滚动条可以通过以下几种方法实现,具体根据使用场景选择: 全局样式设置(APP/H5) 通过修改全局CSS样式隐藏滚动条,适用于所有页面: ::-webkit-scrollbar…

uniapp get

uniapp get

uniapp 获取数据的方法 在 uniapp 中获取数据可以通过多种方式实现,包括 API 请求、本地存储、页面传参等。以下是一些常见的方法: API 请求获取数据 使用 uni.request…

h5实现书本翻页动画

h5实现书本翻页动画

实现书本翻页动画的H5技术方案 H5实现书本翻页动画可通过CSS 3D变换、JavaScript动画库或现成的插件完成。以下是三种主流实现方式: 使用CSS 3D变换 通过CSS的trans…

uniapp 插槽丢失

uniapp 插槽丢失

问题描述 在UniApp开发中,插槽(slot)内容可能因组件嵌套、条件渲染或动态加载等原因丢失或未正确渲染。 常见原因及解决方案 动态组件或条件渲染导致插槽丢失 使用v-if或动态组件时,父组件的…

uniapp 后台播报

uniapp 后台播报

uniapp 实现后台播报的方法 在uniapp中实现后台播报功能,主要涉及音频播放和后台运行权限的配置。以下是具体实现方法: 使用uni.getBackgroundAudioManager uni…

react实现日历翻页效果

react实现日历翻页效果

实现日历翻页效果的核心思路 日历翻页效果通常涉及日期数据的动态切换和动画过渡。React中可通过状态管理日期数据,结合CSS动画或第三方动画库实现视觉翻页效果。 基础实现步骤 状态管理 使用Reac…