当前位置:首页 > VUE

bootstrap和vue实现分页

2026-02-23 00:09:10VUE

Bootstrap 与 Vue 实现分页的方法

使用 Bootstrap 分页组件

Bootstrap 提供了现成的分页组件,可以通过 ul 标签和 page-itempage-link 类快速实现分页样式。

<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>
  <nav aria-label="Page navigation">
    <ul class="pagination">
      <li class="page-item" :class="{ disabled: currentPage === 1 }">
        <a class="page-link" href="#" @click.prevent="changePage(currentPage - 1)">Previous</a>
      </li>
      <li 
        v-for="page in totalPages" 
        :key="page" 
        class="page-item" 
        :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="changePage(currentPage + 1)">Next</a>
      </li>
    </ul>
  </nav>
</template>

<script>
export default {
  data() {
    return {
      currentPage: 1,
      totalPages: 10
    };
  },
  methods: {
    changePage(page) {
      if (page >= 1 && page <= this.totalPages) {
        this.currentPage = page;
        // 触发数据加载逻辑
      }
    }
  }
};
</script>

分页数据绑定

通常分页需要与后端 API 交互,通过 currentPagepageSize 控制数据加载。

bootstrap和vue实现分页

methods: {
  async fetchData() {
    const response = await axios.get('/api/data', {
      params: {
        page: this.currentPage,
        pageSize: 10
      }
    });
    this.data = response.data.items;
    this.totalPages = Math.ceil(response.data.total / 10);
  },
  changePage(page) {
    if (page >= 1 && page <= this.totalPages) {
      this.currentPage = page;
      this.fetchData();
    }
  }
}

分页样式优化

Bootstrap 分页默认样式可以通过自定义 CSS 调整,例如修改激活状态颜色。

.pagination .page-item.active .page-link {
  background-color: #007bff;
  border-color: #007bff;
}

响应式分页

对于移动端,可以隐藏部分页码按钮,仅显示前后导航和当前页。

computed: {
  displayedPages() {
    const range = 2; // 显示当前页前后的页数
    const start = Math.max(1, this.currentPage - range);
    const end = Math.min(this.totalPages, this.currentPage + range);
    return Array.from({ length: end - start + 1 }, (_, i) => start + i);
  }
}

在模板中使用 displayedPages 替代 totalPages,以减少按钮数量。

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

相关文章

h5实现左右分页

h5实现左右分页

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

vue 分页功能实现

vue 分页功能实现

分页功能实现方法 使用 Element UI 的分页组件 Element UI 提供了现成的分页组件 el-pagination,可以快速实现分页功能。 安装 Element UI: npm in…

vue中实现bootstrap

vue中实现bootstrap

在Vue中集成Bootstrap 安装Bootstrap和Vue Bootstrap依赖包 运行以下命令安装Bootstrap和Vue Bootstrap: npm install bootstra…

vue elemennt实现分页

vue elemennt实现分页

Vue Element UI 分页实现 在 Vue 项目中结合 Element UI 实现分页功能,主要通过 el-pagination 组件完成。以下是具体实现方法: 安装 Element UI…

vue实现假分页

vue实现假分页

实现假分页的基本思路 假分页(前端分页)指在一次性获取所有数据后,通过前端逻辑对数据进行分页展示。相比真分页(后端分页),假分页减少了与后端的交互次数,但可能带来性能问题(数据量过大时)。 核心实现…

vue实现滑动分页

vue实现滑动分页

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