当前位置:首页 > 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 分页实现方法 基础分页组件实现 创建一个简单的分页组件,包含上一页、下一页和页码按钮。组件接收当前页码、总页数等参数,通过事件通知父组件页码变化。 <template> &l…

uniapp 内容列表

uniapp 内容列表

uniapp 内容列表的实现方法 在uniapp中实现内容列表通常需要结合组件和数据绑定。以下是一个常见的方法: 模板部分 <template> <view class="c…

vue实现奇偶列表

vue实现奇偶列表

Vue实现奇偶列表样式 在Vue中实现列表项的奇偶不同样式,可以通过多种方式实现。以下是几种常见方法: 使用v-for和动态class绑定 通过v-for循环生成列表时,利用索引值判断奇偶性并绑定…

weex  vue 实现列表

weex vue 实现列表

weex + Vue 实现列表的方法 使用<list>和<cell>组件 在weex中,列表通常通过<list>和<cell>组件实现。<list…

vue完整实现分页

vue完整实现分页

Vue 分页组件实现 分页组件模板 分页组件通常包含页码按钮、上一页/下一页按钮和跳转功能。以下是一个基础模板结构: <template> <div class="pagina…

vue实现列表页面

vue实现列表页面

Vue 列表页面实现方案 基础列表渲染 使用 v-for 指令渲染数组数据,配合 :key 提升性能: <template> <ul> <li v-for=…