当前位置:首页 > VUE

bootstrap和vue实现分页

2026-01-22 09:10:29VUE

Bootstrap 与 Vue 实现分页

使用 Bootstrap 分页组件

Bootstrap 提供了分页组件,可以通过 pagination 类快速实现分页样式。以下是一个基本的分页结构:

<nav aria-label="Page navigation">
  <ul class="pagination">
    <li class="page-item"><a class="page-link" href="#">Previous</a></li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item"><a class="page-link" href="#">Next</a></li>
  </ul>
</nav>

结合 Vue 动态分页

在 Vue 中,可以通过数据绑定动态生成分页按钮,并处理分页逻辑。以下是一个完整的示例:

bootstrap和vue实现分页

<template>
  <div>
    <!-- 分页组件 -->
    <nav aria-label="Page navigation">
      <ul class="pagination">
        <li class="page-item" :class="{ disabled: currentPage === 1 }">
          <a class="page-link" href="#" @click.prevent="prevPage">Previous</a>
        </li>
        <li 
          class="page-item" 
          v-for="page in totalPages" 
          :key="page"
          :class="{ active: currentPage === page }"
        >
          <a class="page-link" href="#" @click.prevent="changePage(page)">{{ page }}</a>
        </li>
        <li class="page-item" :class="{ disabled: currentPage === totalPages }">
          <a class="page-link" href="#" @click.prevent="nextPage">Next</a>
        </li>
      </ul>
    </nav>

    <!-- 分页数据展示 -->
    <ul>
      <li v-for="item in paginatedData" :key="item.id">{{ item.name }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      data: [
        { id: 1, name: 'Item 1' },
        { id: 2, name: 'Item 2' },
        // 更多数据...
      ],
      currentPage: 1,
      itemsPerPage: 5
    };
  },
  computed: {
    totalPages() {
      return Math.ceil(this.data.length / this.itemsPerPage);
    },
    paginatedData() {
      const start = (this.currentPage - 1) * this.itemsPerPage;
      const end = start + this.itemsPerPage;
      return this.data.slice(start, end);
    }
  },
  methods: {
    changePage(page) {
      this.currentPage = page;
    },
    prevPage() {
      if (this.currentPage > 1) {
        this.currentPage--;
      }
    },
    nextPage() {
      if (this.currentPage < this.totalPages) {
        this.currentPage++;
      }
    }
  }
};
</script>

关键点说明

  1. 分页逻辑

    bootstrap和vue实现分页

    • totalPages 计算总页数,通过 Math.ceil 向上取整。
    • paginatedData 根据当前页码和每页显示数量动态切片数据。
  2. 事件处理

    • changePage 直接跳转到指定页码。
    • prevPagenextPage 处理上一页和下一页逻辑。
  3. 样式绑定

    • 使用 :class 动态绑定 activedisabled 状态,提升用户体验。

优化建议

  • 如果数据量较大,建议通过后端 API 分页查询,前端仅传递页码和每页条数。
  • 可以添加 showPageSize 控制显示的页码按钮数量,避免过多按钮影响布局。

通过以上方法,可以快速实现一个功能完整、样式美观的分页组件。

标签: 分页bootstrap
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

分页实现vue

分页实现vue

分页实现方法(Vue) 使用Element UI分页组件 安装Element UI库后,可以直接使用其分页组件。在模板中添加el-pagination,通过v-model绑定当前页码,设置page-s…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

vue实现分页加载

vue实现分页加载

Vue 分页加载的实现方法 基础分页实现(后端分页) 安装依赖(如使用axios): npm install axios 示例代码: <template> <div>…

vue实现滑动分页

vue实现滑动分页

Vue 实现滑动分页的方法 监听滚动事件实现分页加载 在 Vue 中可以通过监听滚动事件来实现滑动分页。需要监听滚动位置,当滚动到底部时加载更多数据。 <template> <…

vue实现分页查询

vue实现分页查询

Vue 实现分页查询 基本思路 在 Vue 中实现分页查询通常需要结合后端 API 和前端组件。核心逻辑包括: 通过 API 获取分页数据 处理分页参数(当前页、每页条数) 渲染分页控件 监听页码变…