当前位置:首页 > uni-app

uniapp分页样式

2026-03-05 08:20:45uni-app

分页样式实现方法

在UniApp中实现分页样式通常涉及前端页面布局和数据分页加载逻辑。以下是常见的实现方式:

基础分页组件样式 使用<view><text>组合实现基础分页器:

<view class="pagination">
  <text @click="prevPage" :class="{disabled: currentPage === 1}">上一页</text>
  <text v-for="page in pageCount" 
        @click="goToPage(page)"
        :class="{active: currentPage === page}">
    {{page}}
  </text>
  <text @click="nextPage" :class="{disabled: currentPage === pageCount}">下一页</text>
</view>

CSS样式示例

.pagination {
  display: flex;
  justify-content: center;
  margin-top: 20px;
}
.pagination text {
  padding: 8px 12px;
  margin: 0 5px;
  border: 1px solid #ddd;
  cursor: pointer;
}
.pagination .active {
  background-color: #007AFF;
  color: white;
}
.pagination .disabled {
  color: #ccc;
  cursor: not-allowed;
}

滚动加载分页样式

对于滚动分页(无限加载)场景:

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

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

滚动加载样式

.loading, .no-more {
  text-align: center;
  padding: 10px;
  color: #999;
}

数据加载逻辑

分页数据请求示例:

data() {
  return {
    list: [],
    currentPage: 1,
    pageSize: 10,
    total: 0,
    loading: false,
    noMore: false
  }
},
methods: {
  async fetchData() {
    if (this.loading || this.noMore) return;

    this.loading = true;
    try {
      const res = await uni.request({
        url: 'api/list',
        data: {
          page: this.currentPage,
          size: this.pageSize
        }
      });

      this.list = [...this.list, ...res.data.list];
      this.total = res.data.total;
      this.noMore = this.list.length >= this.total;
    } finally {
      this.loading = false;
    }
  },

  loadMore() {
    if (!this.noMore) {
      this.currentPage++;
      this.fetchData();
    }
  }
}

组件库分页方案

使用uni-ui组件库的分页器:

<uni-pagination 
  :total="total" 
  :current="currentPage"
  :pageSize="pageSize"
  @change="pageChange"
/>

uni-pagination参数说明

  • show-icon: 显示首页末页图标
  • prev-text: 上一页文字
  • next-text: 下一页文字
  • pageSize: 每页数量

平台差异处理

处理不同平台的分页样式差异:

uniapp分页样式

/* #ifdef H5 */
.pagination {
  padding-bottom: 20px;
}
/* #endif */

/* #ifdef MP-WEIXIN */
.pagination text {
  padding: 6px 10px;
}
/* #endif */

以上方案可根据具体项目需求进行组合或调整,实现适合不同场景的分页效果。

标签: 分页样式
分享给朋友:

相关文章

vue 分页 实现

vue 分页 实现

Vue 分页实现方法 使用第三方库(如 Element UI) Element UI 提供了现成的分页组件 el-pagination,适合快速集成。 安装 Element UI: npm ins…

vue 分页的实现

vue 分页的实现

Vue 分页的实现方法 使用 Element UI 的分页组件 安装 Element UI: npm install element-ui 在 Vue 项目中引入 Element UI 的分页组件:…

分页用vue实现

分页用vue实现

分页用 Vue 实现 在 Vue 中实现分页功能通常需要结合数据管理和 UI 组件。以下是几种常见的方法: 使用 Vue 组件库的分页组件 许多 Vue UI 组件库(如 Element UI、Va…

uniapp 分页组件

uniapp 分页组件

uniapp 分页组件实现方法 在uniapp中实现分页功能,可以通过自定义组件或使用第三方组件库完成。以下是几种常见实现方式: 自定义分页组件 创建一个名为uni-pagination的组件,模板…

vue实现列表分页

vue实现列表分页

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

vue分页怎么实现

vue分页怎么实现

Vue 分页实现方法 使用 Element UI 的分页组件 Element UI 提供了现成的分页组件 el-pagination,适合快速集成。需要先安装 Element UI 库。 &…