当前位置:首页 > uni-app

uniapp列表分页

2026-03-05 03:32:21uni-app

分页实现方法

在UniApp中实现列表分页功能,通常需要结合前端页面和后端接口共同完成。以下是常见的实现方式:

前端页面结构 使用<scroll-view>组件或<uni-list>组件作为容器,搭配onReachBottom生命周期实现滚动加载:

uniapp列表分页

<template>
  <scroll-view 
    scroll-y 
    @scrolltolower="loadMore"
    style="height: 100vh">
    <view v-for="(item,index) in list" :key="index">
      <!-- 列表项内容 -->
    </view>
    <view v-if="loading">加载中...</view>
    <view v-if="noMore">没有更多了</view>
  </scroll-view>
</template>

数据逻辑处理 在script部分定义分页相关变量和方法:

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

    const res = await uni.request({
      url: 'your_api_url',
      data: {
        page: this.page,
        pageSize: this.pageSize
      }
    });

    if (res.data.length) {
      this.list = [...this.list, ...res.data];
      this.page++;
    } else {
      this.noMore = true;
    }
    this.loading = false;
  },
  loadMore() {
    this.loadData();
  }
},
onLoad() {
  this.loadData();
}

优化建议

下拉刷新功能 添加下拉刷新提升用户体验:

uniapp列表分页

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

性能优化 对于长列表建议使用<uni-list>的回收滚动功能:

<uni-list>
  <uni-list-item 
    v-for="(item,index) in list" 
    :key="index"
    :title="item.title" 
    :note="item.desc" />
</uni-list>

错误处理 增加网络请求错误处理:

try {
  const res = await uni.request({...});
  // 处理数据
} catch (e) {
  uni.showToast({
    title: '加载失败',
    icon: 'none'
  });
} finally {
  this.loading = false;
}

注意事项

  • 分页参数需与后端约定一致,常见有page/pageSizeoffset/limit两种模式
  • 列表数据量较大时应考虑虚拟滚动技术
  • 安卓平台需注意scroll-view的height必须设置为固定值
  • 分页加载时应显示加载状态,避免用户重复操作

通过以上方法可以实现基础的列表分页功能,根据实际项目需求可进一步扩展优化。

标签: 分页列表
分享给朋友:

相关文章

vue实现列表

vue实现列表

Vue 实现列表的方法 在 Vue 中实现列表渲染通常使用 v-for 指令,可以动态生成多个元素。以下是几种常见的实现方式: 基础列表渲染 使用 v-for 遍历数组,生成列表项。v-for 需…

vue实现列表循环

vue实现列表循环

Vue 列表循环的实现方法 在 Vue 中,可以通过 v-for 指令实现列表循环渲染。以下是几种常见的实现方式: 基础列表渲染 <template> <ul>…

vue实现WiFi列表

vue实现WiFi列表

获取WiFi列表的Vue实现 使用Vue获取WiFi列表需要结合浏览器API或后端服务,因为浏览器出于安全限制无法直接访问系统WiFi信息。以下是两种常见实现方式: 方法一:通过Web API获取…

h5实现展开列表

h5实现展开列表

使用HTML5和CSS实现展开列表 在HTML5中,可以通过结合CSS和JavaScript实现展开列表效果。以下是几种常见的方法: 方法1:使用details和summary标签 HTML5…

vue 实现分页

vue 实现分页

分页实现方法 在Vue中实现分页功能,可以通过计算属性和方法结合来实现。以下是一个典型的分页实现方式: 模板部分 <template> <div> <…

vue实现列表

vue实现列表

实现列表的基本方法 在Vue中实现列表通常使用v-for指令,这是Vue的核心功能之一。v-for可以遍历数组或对象,为每个元素生成对应的DOM节点。 <template> <…