当前位置:首页 > uni-app

uniapp 分页组件

2026-01-14 18:36:22uni-app

uniapp 分页组件实现方法

在uniapp中实现分页功能,可以通过自定义组件或使用第三方组件库完成。以下是几种常见实现方式:

自定义分页组件 创建一个名为uni-pagination的组件,模板部分代码如下:

<view class="uni-pagination">
  <view class="uni-pagination-prev" @click="prevPage">上一页</view>
  <view class="uni-pagination-item" 
        v-for="page in pages" 
        :key="page"
        :class="{active: currentPage === page}"
        @click="changePage(page)">
    {{page}}
  </view>
  <view class="uni-pagination-next" @click="nextPage">下一页</view>
</view>

使用uni-ui官方组件 uniapp官方提供了uni-pagination组件,安装uni-ui后可直接使用:

<uni-pagination 
  :total="total" 
  :current="current" 
  :page-size="pageSize" 
  @change="change">
</uni-pagination>

第三方组件库实现 如使用uView UI的分页组件:

<u-pagination 
  :count="total" 
  v-model="current" 
  :page-size="pageSize">
</u-pagination>

分页逻辑处理

在页面或组件中需要处理分页数据请求:

export default {
  data() {
    return {
      list: [],
      currentPage: 1,
      pageSize: 10,
      total: 0
    }
  },
  methods: {
    fetchData() {
      // 模拟API请求
      uni.request({
        url: 'your_api_url',
        data: {
          page: this.currentPage,
          size: this.pageSize
        },
        success: (res) => {
          this.list = res.data.list
          this.total = res.data.total
        }
      })
    },
    changePage(page) {
      this.currentPage = page
      this.fetchData()
    }
  },
  created() {
    this.fetchData()
  }
}

样式优化建议

为分页组件添加基础样式:

uniapp 分页组件

.uni-pagination {
  display: flex;
  justify-content: center;
  margin: 20px 0;
}
.uni-pagination-item, 
.uni-pagination-prev,
.uni-pagination-next {
  padding: 5px 10px;
  margin: 0 5px;
  border: 1px solid #ddd;
  border-radius: 3px;
}
.uni-pagination-item.active {
  background-color: #007AFF;
  color: #fff;
  border-color: #007AFF;
}

注意事项

  • 分页组件应显示页码范围,避免在数据量过大时显示过多页码
  • 需要处理边界情况,如第一页禁用"上一页",最后一页禁用"下一页"
  • 在H5端可使用PC风格分页,APP端建议使用移动端风格的简单分页
  • 列表数据变化时应重置当前页码为1

标签: 分页组件
分享给朋友:

相关文章

如何设计react组件

如何设计react组件

设计 React 组件的核心原则 React 组件的设计需要遵循高内聚、低耦合的原则,确保组件功能独立且易于维护。组件的设计可以分为展示组件和容器组件两类,展示组件负责 UI 渲染,容器组件负责逻辑处…

vue实现tooltips组件

vue实现tooltips组件

实现基础 Tooltip 组件 创建一个名为 Tooltip.vue 的单文件组件,包含模板、样式和逻辑: <template> <div class="tooltip-con…

vue实现组件通信

vue实现组件通信

Vue 组件通信方法 Vue 提供了多种方式实现组件间的通信,适用于不同场景。以下是常见的方法: Props 和 Events 父组件通过 props 向子组件传递数据,子组件通过 $emit 触…

vue table组件实现

vue table组件实现

Vue 表格组件实现方案 基础表格实现 使用<table>标签结合v-for指令渲染数据是最简单的实现方式: <template> <table> &…

如何缓存react组件

如何缓存react组件

缓存React组件的方法 React.memo 使用React.memo对函数组件进行浅比较缓存,避免不必要的重新渲染。适用于props不变的场景。 const MemoizedComponen…

vue实现列表分页

vue实现列表分页

Vue 列表分页实现方法 基础分页实现 安装依赖(如使用第三方库) npm install vue-paginate 模板部分示例 <template> <div>…