当前位置:首页 > 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

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

相关文章

vue动态组件实现

vue动态组件实现

Vue 动态组件实现方法 使用 component 标签与 is 属性 通过 Vue 内置的 <component> 标签和 is 属性实现动态组件切换。is 的值可以是已注册的组件名或导…

vue如何实现目录组件

vue如何实现目录组件

实现目录组件的基本思路 在Vue中实现目录组件通常需要结合页面内容的结构化数据(如标题层级),通过动态渲染生成可交互的目录。核心步骤包括提取标题、生成目录结构、实现滚动联动等。 提取标题信息 通过d…

php分页代码简单实现

php分页代码简单实现

基本分页实现 在PHP中实现分页功能通常需要结合MySQL的LIMIT子句。以下是一个基础实现示例: <?php // 数据库连接 $conn = mysqli_connect("localh…

h5实现左右分页

h5实现左右分页

实现左右分页的HTML5方法 在HTML5中实现左右分页效果可以通过多种方式完成,以下是几种常见的方法: 使用CSS Flexbox布局 Flexbox是一种现代的布局方式,可以轻松实现左右分页效果…

组件elementui

组件elementui

ElementUI 简介 ElementUI 是一套基于 Vue.js 的桌面端组件库,由饿了么前端团队开发并开源。它提供了丰富的 UI 组件(如按钮、表单、表格等),适合快速构建企业级中后台产品。…

vue实现盖章组件

vue实现盖章组件

实现Vue盖章组件的步骤 组件结构设计 创建一个Vue组件,包含画布元素和必要的控制按钮。画布用于显示盖章效果,按钮用于触发盖章操作。组件需要接收图片和盖章位置等参数。 <template&g…