You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Vue3和Bootstrap-Vue-3实现b-table可排序及功能咨询

关于BootstrapVue 3的b-table排序、筛选及分页问题

我正尝试为b-table添加排序功能,但遇到了问题。当前使用的版本为:Vue ^3.2.13,BootstrapVue-3 ^0.1.6,不清楚问题出在哪里。同时想咨询该组件是否支持筛选和分页功能,以下是我的Vue代码:

<template>
  <div class="overview">
    <b-table
        sort-by="status" sortDesc
        :items="items"
        :fields="formFields.licences"
    >
    </b-table>
  </div>
</template>

<script>

export default {
  name: "licences.vue",
  data(){
    return {
      formFields: {
        licences: [
          {key: "name", sortable: true,  label: "Name"},
          {key: "status", sortable: true, label: "Status"},
        ],
      },
      items: [
        { name: "Jack", status: "Used" },
        {name: "Frank", status: "Unused"},
        {name: "Larry", status: "Used" }
      ]
      }
  }
}
</script>

排序问题排查

  • 你使用的BootstrapVue-3 ^0.1.6是极早期的测试版本,很多功能不完善,大概率是版本bug导致排序失效。建议直接升级到最新稳定版,解决基础功能问题。
  • 模板中属性写法有误:sortDesc应该改为绑定的:sort-desc="true"(Vue模板中驼峰属性要转成短横线分隔的绑定形式),sort-by也建议改为绑定形式:sort-by="'status'",修正后代码:
<b-table
    :sort-by="'status'" 
    :sort-desc="true"
    :items="items"
    :fields="formFields.licences"
>
</b-table>

筛选与分页支持

BootstrapVue 3的b-table完全支持筛选和分页:

筛选实现

添加输入框绑定筛选关键词,配合b-table的filter属性:

<input v-model="filterText" placeholder="输入关键词筛选">
<b-table
    :filter="filterText"
    :items="items"
    :fields="formFields.licences"
>
</b-table>

在data中新增filterText: ''即可。

分页实现

用b-pagination组件配合b-table的分页属性:

<b-table
    :items="items"
    :fields="formFields.licences"
    :per-page="perPage"
    :current-page="currentPage"
>
</b-table>
<b-pagination
    v-model="currentPage"
    :total-rows="items.length"
    :per-page="perPage"
    aria-controls="licence-table"
>
</b-pagination>

在data中新增perPage: 2, currentPage: 1。

内容的提问来源于stack exchange,提问作者mlvt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 17:06:32