当前位置:首页 > 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 中,可以通过计算属性动态生成分页按钮,并根据当前页高亮显示。

<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 控制数据加载。

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和vue实现分页

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

相关文章

vue组件传值实现分页

vue组件传值实现分页

Vue组件传值实现分页的方法 在Vue中实现分页功能,通常需要父子组件之间的数据传递。以下是几种常见的传值方式: 使用props传递数据 父组件通过props向子组件传递当前页码和总页数等分页信息:…

vue router实现分页

vue router实现分页

使用 Vue Router 实现分页 在 Vue.js 项目中,可以通过 Vue Router 结合分页组件实现分页功能。以下是实现分页的几种方法: 使用路由参数传递页码 在路由配置中定义一个动态…

jquery 分页

jquery 分页

实现 jQuery 分页的方法 客户端分页实现 使用 jQuery 实现客户端分页的核心思路是通过 JavaScript 控制数据的显示与隐藏。假设有一个包含数据的 HTML 列表或表格: // 分…

vue elementui实现分页

vue elementui实现分页

Vue + ElementUI 分页实现方法 安装与引入 确保已安装 ElementUI,可通过 npm 或 yarn 安装: npm install element-ui 在 main.js 中全…

vue怎样实现分页

vue怎样实现分页

Vue实现分页的方法 使用第三方库(如Element UI或Ant Design Vue) Element UI的Pagination组件可以直接集成到Vue项目中。安装Element UI后,在组件…

vue 异步分页实现

vue 异步分页实现

异步分页实现方法 在Vue中实现异步分页通常涉及与后端API的交互,前端需要处理分页逻辑和数据加载。以下是常见的实现方式: 使用axios获取分页数据 通过axios与后端API通信,获取分页数据并…