当前位置:首页 > VUE

vue和bootstrap实现分页

2026-02-23 15:42:22VUE

使用 Vue 和 Bootstrap 实现分页

安装依赖

确保项目中已安装 Vue 和 Bootstrap。通过 npm 或 yarn 安装 Bootstrap 及其 Vue 适配组件:

npm install bootstrap @popperjs/core
npm install bootstrap-vue

引入 Bootstrap 样式和组件

在项目的入口文件(如 main.js)中引入 Bootstrap 样式和 BootstrapVue:

vue和bootstrap实现分页

import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'
import BootstrapVue from 'bootstrap-vue'

Vue.use(BootstrapVue)

分页组件实现

在 Vue 组件中使用 BootstrapVue 的 <b-pagination> 组件实现分页功能。以下是一个完整示例:

<template>
  <div>
    <b-pagination
      v-model="currentPage"
      :total-rows="totalRows"
      :per-page="perPage"
      aria-controls="my-table"
    ></b-pagination>

    <b-table
      id="my-table"
      :items="items"
      :per-page="perPage"
      :current-page="currentPage"
      small
    ></b-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: 'Item 1' },
        { id: 2, name: 'Item 2' },
        // 更多数据...
      ],
      perPage: 5,
      currentPage: 1
    }
  },
  computed: {
    totalRows() {
      return this.items.length
    }
  }
}
</script>

自定义分页行为

通过监听 currentPage 的变化或调用 API 实现动态数据加载:

vue和bootstrap实现分页

watch: {
  currentPage(newVal) {
    this.fetchData(newVal)
  }
},
methods: {
  fetchData(page) {
    // 调用 API 获取分页数据
    axios.get(`/api/items?page=${page}`)
      .then(response => {
        this.items = response.data.items
        this.totalRows = response.data.total
      })
  }
}

分页样式调整

BootstrapVue 的分页组件支持多种样式配置,例如对齐方式、大小等:

<b-pagination
  v-model="currentPage"
  :total-rows="totalRows"
  :per-page="perPage"
  align="center"
  size="sm"
></b-pagination>

服务器端分页

对于大数据量场景,建议结合后端分页接口。每次翻页时重新请求数据:

fetchData(page) {
  axios.get(`/api/items?page=${page}&limit=${this.perPage}`)
    .then(response => {
      this.items = response.data.items
      this.totalRows = response.data.total
    })
}

通过以上步骤,可以快速实现基于 Vue 和 Bootstrap 的分页功能,同时支持客户端和服务器端分页模式。

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

相关文章

vue实现安全免登录

vue实现安全免登录

Vue 实现安全免登录的方案 免登录功能通常通过持久化认证状态(如 Token)实现,但需兼顾安全性。以下是基于 Vue 的常见实现方案: 基于 Token 的免登录 登录成功后存储 Token…

vue实现星星

vue实现星星

实现星星评分的Vue组件 使用Vue实现星星评分功能可以通过组件化方式完成,以下是一个完整的实现方案: 模板部分 <template> <div class="star-ra…

vue实现全景

vue实现全景

Vue 实现全景效果的方法 使用 Vue 实现全景效果通常需要结合第三方库或框架,以下是几种常见的方法: 使用 Three.js 和 Vue-Three.js Three.js 是一个强大的 3D…

vue实现hover

vue实现hover

Vue 实现 hover 效果的方法 在 Vue 中实现 hover 效果可以通过多种方式实现,包括使用 CSS、Vue 指令或事件监听。以下是几种常见的方法: 使用 CSS :hover 伪类 通…

vue实现京东

vue实现京东

Vue 实现京东电商网站的关键步骤 项目搭建与基础配置 使用 Vue CLI 或 Vite 初始化项目,安装 Vue Router 管理路由,Vuex/Pinia 管理状态。配置基础 UI 框架如 E…

vue实现抽屉

vue实现抽屉

Vue 实现抽屉组件 抽屉组件是一种常见的 UI 模式,通常用于从屏幕边缘滑出内容。以下是几种实现抽屉的方法: 使用 Vue 原生实现 创建一个基本的抽屉组件,利用 Vue 的过渡和条件渲染功能。…