记录数据可能还具有其他特殊的保留名称键,用于为行和单个单元格(变体)着色,以及触发其他行详细信息。 受支持的可选项目记录修改器属性(确保您的字段键与这些名称不冲突):
元素生成唯一的ID。
  <tr>  该ID的格式为{table-id}__row_{primary-key-value}
  ,其中 {table-id} 是<b-table>的唯一ID 并且主键指定的字段的项目字段值的最大值。
表格渲染和过渡优化  <b-table>还使用 主键帮助Vue优化表行的呈现。 在内部,由主键prop指定的字段键的值用作每个渲染的项目行元素的Vue:key值。 primary-key  如果您看到渲染问题(例如,工具提示隐藏或子组件意外重用,
  项目数据更改或数据已排序/过滤/编辑)或表格行转换无效,
 主键 道具(如果每行具有唯一的标识符)可以缓解这些问题。
如果您使用的是第三方表转换或拖放插件,则指定主键列很方便,因为它们依赖于每行:key值的一致性和唯一性。
a和拖放插件,因为它们依赖于每行:key值的一致性和唯一性。:key value.
  如果未提供primary-key,<b-table>将根据显示行的索引号(即在显示的表行中的位置)自动生成键。
    这可能会导致GUI问题,例如使用以前的结果进行渲染的子组件/元素(即被Vue的渲染修补程序优化例程重用)。指定primary-key 列
    可以缓解此问题(或者可以在自定义格式化字段槽中的元素/组件上放置unique:key)。
  有关更多详细信息,请参阅表体过度支撑 部分。
表格样式选项 表格样式 <b-table> 提供几个属性来更改表的样式:
属性 
类型 
说明 
 
 
stripedBoolean 
将斑马线添加到<tbody> 
 
borderedBoolean 
用于表格和单元格所有边上的边框。 
 
borderlessBoolean 
从表中删除内部边框。 
 
outlinedBoolean 
  在桌子的所有边上画一条细线。如果设置了bordered,则不起作用。
 
 
smallBoolean 
通过将单元格填充减半使表更紧凑。 
 
hoverBoolean 
  在<tbody>中的表行上启用悬停突出显示状态 
 
darkBoolean 
  反转颜色-在深色背景上使用浅色文本(相当于Bootstrap v4 class.table-dark)
 
 
fixedBoolean 
  生成具有相等固定宽度列的表(table-layout: fixed;)
 
 
responsiveBoolean or String 
  生成响应表格以使其水平滚动。对于始终响应的表,将其设置为true,或将其设置为断点'sm', 
  'md', 
  'lg',和
  'xl',
  以使表仅在小于断点的屏幕上响应(水平滚动)。请参阅下面的响应表格 以了解详细信息。
 
 
sticky-headerBoolean or String 
  生成带有粘性标题的垂直可滚动表。设置为true可启用粘性标题(默认表最大高度为300pxpx),
  或设置为包含高度的字符串(使用CSS单位)可指定300pxpx以外的最大高度。有关详细信息,请参阅下面的粘性页眉 部分。
 
 
stackedBoolean or String 
  生成响应堆栈表。对于始终堆叠的表,将其设置为true,
  或将其设置为断点'sm', 
  'md', 
  'lg',和 
  'xl'之一,以使表仅在小于断点的屏幕上可视堆叠。有关详细信息,请参见下面的堆叠表格 。
   
 
caption-topBoolean 
  如果table上有标题,并且此属性设置为true,则标题将可视地放置在table上方。 
  如果为false(默认值),则标题将可视地放置在table下方。
 
 
table-variantString 
为表格提供整体主题颜色。 
 
head-variantString 
  使用'light'或'dark'分别使表格标题显示为浅色或深灰色
 
 
foot-variantString 
  使用'light'或'dark'使表格页脚分别显示为浅灰色或深灰色。 
  如果未设置,将使用head-variant。 如果未设置foot-clone,则无效
 
 
foot-cloneBoolean 
打开表格页脚,并默认使用与表格页眉相同的内容 
 
no-footer-sortingBoolean 
  当 foot-clone为true并且表可排序时,
  将禁用排序图标和对页脚标题单元格的单击行为。 有关更多详细信息,请参阅下面的排序 部分。
 
 
no-border-collapseBoolean 
  禁用折叠表格边框的默认设置。 主要用于sticky headers 和/或sticky columns 。 在某些情况下会导致出现双边框。
   
 
 
 
注意: 
  fixed, 
  stacked, 
  caption-top, 
  no-border-collapse,粘性标题,粘性列以及表排序功能的表格样式选项均需要Bootstrap Vue自定义CSS。
示例: 基本表格样式 
 
 
First Name 
Last Name 
Age 
 
 
Dickerson 
Macdonald 
40 
 
Larsen 
Shaw 
21 
 
Geneva 
Wilson 
89 
 
 
 
 
<template > 
  <div > 
    <b-form-group  label ="Table Options"  label-cols-lg ="2" > 
      <b-form-checkbox  v-model ="striped"  inline > Striped</b-form-checkbox > 
      <b-form-checkbox  v-model ="bordered"  inline > Bordered</b-form-checkbox > 
      <b-form-checkbox  v-model ="borderless"  inline > Borderless</b-form-checkbox > 
      <b-form-checkbox  v-model ="outlined"  inline > Outlined</b-form-checkbox > 
      <b-form-checkbox  v-model ="small"  inline > Small</b-form-checkbox > 
      <b-form-checkbox  v-model ="hover"  inline > Hover</b-form-checkbox > 
      <b-form-checkbox  v-model ="dark"  inline > Dark</b-form-checkbox > 
      <b-form-checkbox  v-model ="fixed"  inline > Fixed</b-form-checkbox > 
      <b-form-checkbox  v-model ="footClone"  inline > Foot Clone</b-form-checkbox > 
      <b-form-checkbox  v-model ="noCollapse"  inline > No border collapse</b-form-checkbox > 
    </b-form-group > 
    <b-form-group  label ="Head Variant"  label-cols-lg ="2" > 
      <b-form-radio-group  v-model ="headVariant"  class ="mt-lg-2" > 
        <b-form-radio  :value ="null"  inline > None</b-form-radio > 
        <b-form-radio  value ="light"  inline > Light</b-form-radio > 
        <b-form-radio  value ="dark"  inline > Dark</b-form-radio > 
      </b-form-radio-group > 
    </b-form-group > 
    <b-form-group  label ="Table Variant"  label-for ="table-style-variant"  label-cols-lg ="2" > 
      <b-form-select 
        v-model ="tableVariant" 
        :options ="tableVariants" 
        id ="table-style-variant" 
      > 
        <template  v-slot:first > 
          <option  value ="" > -- None --</option > 
        </template > 
      </b-form-select > 
    </b-form-group > 
    <b-table 
      :striped ="striped" 
      :bordered ="bordered" 
      :borderless ="borderless" 
      :outlined ="outlined" 
      :small ="small" 
      :hover ="hover" 
      :dark ="dark" 
      :fixed ="fixed" 
      :foot-clone ="footClone" 
      :no-border-collapse ="noCollapse" 
      :items ="items" 
      :fields ="fields" 
      :head-variant ="headVariant" 
      :table-variant ="tableVariant" 
    > </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        fields : ['first_name' , 'last_name' , 'age' ],
        items : [
          { age : 40 , first_name : 'Dickerson' , last_name : 'Macdonald'  },
          { age : 21 , first_name : 'Larsen' , last_name : 'Shaw'  },
          { age : 89 , first_name : 'Geneva' , last_name : 'Wilson'  }
        ],
        tableVariants : [
          'primary' ,
          'secondary' ,
          'info' ,
          'danger' ,
          'warning' ,
          'success' ,
          'light' ,
          'dark' 
        ],
        striped : false ,
        bordered : false ,
        borderless : false ,
        outlined : false ,
        small : false ,
        hover : false ,
        dark : false ,
        fixed : false ,
        footClone : false ,
        headVariant : null ,
        tableVariant : '' ,
        noCollapse : false 
      }
    }
  }
 </script > 行样式和属性 
  您还可以使用tbody-tr-class属性设置每一行的样式,并可以选择通过tbody-tr-attr属性提供其他属性:
属性 
类型 
描述 
 
 
tbody-tr-classString, Array or Function 
  应用于表上每一行的类。 如果给出了一个函数,它将被称为 tbodyTrClass( item, type ),
  并且它可能返回一个Array,Object 和
  String。
 
 
tbody-tr-attrObject or Function 
  应用于表上每一行的属性。 如果给出了一个函数,它将被称为tbodyTrAttr( item, type ),并且它必须返回一个Object。
 
 
 
 
  将函数引用传递给tbody-tr-class 或 
  tbody-tr-attr时,该函数的参数如下:
item - 
  项目记录与行关联的数据。 对于与项目记录不相关的行,此值将为null或
  undefined
type - 
  呈现的行的类型。 'row'用于项目行,
  'row-details'用于项目明细行,
  'row-top'用于固定行顶部插槽,
  'row-bottom'用于固定行底部插槽,
  或'table-busy'用于table繁忙时段。
 
示例: 基本行样式 
First Name 
Last Name 
Age 
 
 
Dickerson 
Macdonald 
40 
 
Larsen 
Shaw 
21 
 
Geneva 
Wilson 
89 
 
 
 
 
<template > 
  <div > 
    <b-table  :items ="items"  :fields ="fields"  :tbody-tr-class ="rowClass" > </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        fields : ['first_name' , 'last_name' , 'age' ],
        items : [
          { age : 40 , first_name : 'Dickerson' , last_name : 'Macdonald' , status : 'awesome'  },
          { age : 21 , first_name : 'Larsen' , last_name : 'Shaw'  },
          { age : 89 , first_name : 'Geneva' , last_name : 'Wilson'  }
        ]
      }
    },
    methods : {
      rowClass(item, type) {
        if  (!item || type !== 'row' ) return 
        if  (item.status === 'awesome' ) return  'table-success' 
      }
    }
  }
 </script > 响应表格 
  响应式表格允许轻松地水平滚动表。 通过将prop设置为true,
  使所有表在所有视口中都具有responsive。 
  或者,通过将prop设置为响应以下断点值之一来选择最大响应点,以使其具有responsive:
  sm, 
md,
 lg, 或
  xl.
示例: 始终响应表格 
Heading1 
Heading2 
Heading3 
Heading4 
Heading5 
Heading6 
Heading7 
Heading8 
Heading9 
Heading10 
Heading11 
Heading12 
 
 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
table cell 
 
 
 
 
 
<template > 
  <div > 
    <b-table  responsive  :items ="items" > </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        items : [
          {
            heading1 : 'table cell' ,
            heading2 : 'table cell' ,
            heading3 : 'table cell' ,
            heading4 : 'table cell' ,
            heading5 : 'table cell' ,
            heading6 : 'table cell' ,
            heading7 : 'table cell' ,
            heading8 : 'table cell' ,
            heading9 : 'table cell' ,
            heading10 : 'table cell' ,
            heading11 : 'table cell' ,
            heading12 : 'table cell' 
          },
          {
            heading1 : 'table cell' ,
            heading2 : 'table cell' ,
            heading3 : 'table cell' ,
            heading4 : 'table cell' ,
            heading5 : 'table cell' ,
            heading6 : 'table cell' ,
            heading7 : 'table cell' ,
            heading8 : 'table cell' ,
            heading9 : 'table cell' ,
            heading10 : 'table cell' ,
            heading11 : 'table cell' ,
            heading12 : 'table cell' 
          },
          {
            heading1 : 'table cell' ,
            heading2 : 'table cell' ,
            heading3 : 'table cell' ,
            heading4 : 'table cell' ,
            heading5 : 'table cell' ,
            heading6 : 'table cell' ,
            heading7 : 'table cell' ,
            heading8 : 'table cell' ,
            heading9 : 'table cell' ,
            heading10 : 'table cell' ,
            heading11 : 'table cell' ,
            heading12 : 'table cell' 
          }
        ]
      }
    }
  }
 </script > 响应表格注释: 
  可能的垂直剪切/截断。  响应表格使用overflow-y: hidden,它会剪裁超出表底部或顶部边缘的所有内容。 特别是,这可能会剪切下拉菜单和其他第三方小部件。
 
  使用responsive和 
  fixed在一起的属性将无法 正常工作。 固定表格布局使用第一行(在这种情况下为表格标题)来计算每一列所需的宽度(以及表格的整体宽度)以适合父容器的宽度-无需考虑
  <tbody>中的单元格- 导致表可能没有响应。 要解决此限制,您将需要通过以下方法之一为列(或某些列)指定宽度:
 
 
堆叠表格 
  作为响应表格的替代方法,BootstrapVue包括堆叠表格选项(使用自定义SCSS / CSS),该选项允许以可视堆叠格式呈现表。 通过将属性stacked
  设置为true,可以在所有视口中堆叠任何表格。 或者,通过将stacked的prop设置为断点值
  'sm', 
  'md', 
  'lg'和
  'xl'.之一来设置断点,表将在该断点处恢复为正常的表格式。
  列标题标签将使用CSS ::before伪元素呈现在每个字段值的左侧,宽度为40%。
  stacked的属性优先于响应式道具,sticky-headerstickyColumn
示例: Always 堆积表 
40
Dickerson
Macdonald
 
21
Larsen
Shaw
 
89
Geneva
Wilson
 
 
 
 
<template > 
  <div > 
    <b-table  stacked  :items ="items" > </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        items : [
          { age : 40 , first_name : 'Dickerson' , last_name : 'Macdonald'  },
          { age : 21 , first_name : 'Larsen' , last_name : 'Shaw'  },
          { age : 89 , first_name : 'Geneva' , last_name : 'Wilson'  }
        ]
      }
    }
  }
 </script > 注意: 当table被视觉上堆叠时: 
表格标题(和表格页脚)将被隐藏。 
  自定义呈现的标题槽将不会显示,而是使用字段的label。
 
  无法通过单击呈现的字段标签对表进行排序。 您将需要提供一个外部控件来选择要排序的字段和排序方向。 有关对控件信息进行排序的信息,请参见下面的Sorting 部分;
  对于使用表单控件来控制排序的示例,请参见本页底部的 完整实例 。
 
  在视觉上堆叠时,top-row和bottom-row排插槽将被隐藏
 
  表格标题(如果提供)在视觉上堆叠时将始终显示在表格的顶部。
 
在始终堆叠的表中,表的页眉和页脚以及固定的顶部和底部行插槽 将不会被渲染。 
 
为了支持堆叠表格,需要BootstrapVue的自定义CSS。
表格标题 
  通过属性caption或命名的slot table-caption(插槽优先于prop),向表中添加可选标题。 默认的Bootstrap v4样式将标题放在表格的底部:
This is a table caption.
 
First Name 
Last Name 
Age 
 
 
Dickerson 
Macdonald 
40 
 
Larsen 
Shaw 
21 
 
Geneva 
Wilson 
89 
 
 
 
 
<template > 
  <div > 
    <b-table  :items ="items"  :fields ="fields" > 
      <template  v-slot:table-caption > This is a table caption.</template > 
    </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        fields : ['first_name' , 'last_name' , 'age' ],
        items : [
          { age : 40 , first_name : 'Dickerson' , last_name : 'Macdonald'  },
          { age : 21 , first_name : 'Larsen' , last_name : 'Shaw'  },
          { age : 89 , first_name : 'Geneva' , last_name : 'Wilson'  }
        ]
      }
    }
  }
 </script > 
  您可以通过将caption-top属性设置为true来将标题放置在表格的顶部:
This is a table caption at the top.
 
First Name 
Last Name 
Age 
 
 
Dickerson 
Macdonald 
40 
 
Larsen 
Shaw 
21 
 
Geneva 
Wilson 
89 
 
 
 
 
<template > 
  <div > 
    <b-table  :items ="items"  :fields ="fields"  caption-top > 
      <template  v-slot:table-caption > This is a table caption at the top.</template > 
    </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        fields : ['first_name' , 'last_name' , 'age' ],
        items : [
          { age : 40 , first_name : 'Dickerson' , last_name : 'Macdonald'  },
          { age : 21 , first_name : 'Larsen' , last_name : 'Shaw'  },
          { age : 89 , first_name : 'Geneva' , last_name : 'Wilson'  }
        ]
      }
    }
  }
 </script > 
  您还可以使用自定义 CSS 来控制字幕的位置。
表格 colgroup table-colgroup 为表列的可选分组和样式指定
  <colgroup>和 
  <col>元素。 
    请注意,通过<col>元素可用的样式是有限的。 
    有关<colgroup>的详细信息和用法,
    请参考MDN 
  插槽table-colgroup可以选择范围,接收具有以下属性的对象:
  提供时, table-colgroup插槽的内容将放置在
元素内。 
    无需提供您自己的外部<colgroup>元素。 
    如果出于辅助技术的原因应将一系列表列分组(为了传达逻辑列关联,请使用<col span="#">元素(用#替换为分组列的数量)来对一系列列进行分组。
提示:  
  在某些情况下,当尝试通过
style或
  class设置列宽时,您可能会发现将表置于固定标题宽度(表固定布局模式)模式与responsive(水平滚动)模式结合使用会有所帮助,尽管您将需要通过样式或类为每个列的相应<col>元素设置显式宽度或最小宽度。例如:
<b-table  fixed  responsive  :items ="items"  :fields ="fields"  ...  > 
  <template  v-slot:table-colgroup ="scope" > 
    <col 
      v-for ="field in scope.fields" 
      :key ="field.key" 
      :style ="{ width: field.key === 'foo' ? '120px' : '180px' }" 
    > 
  </template > 
  
</b-table > 表格忙碌状态 
  <b-table>提供了一个忙碌属性,它将把table标记为busy,您可以在更新商品之前将其设置为true,然后在拥有商品后将其设置为false。当处于繁忙状态时,该表将具有属性aria-busy="true"。
  在繁忙状态期间,将使用以下自定义CSS将表呈现为“静音”外观(opacity: 0.6):
table .b-table [aria-busy='true' ]  {
  opacity : 0.6 ;
} 您可以使用自己的CSS覆盖此样式。
  您可以选择提供一个table-busy
  插槽,以在表的忙状态为真时显示自定义加载消息或微调框。 该插槽将放置在
  b-table-busy-slot类的
  <tr>元素中,该元素具有一个单个<td>
  ,且colspan设置为字段数。
表格table-busy用法: 
Toggle Busy State 
First Name 
Last Name 
Age 
 
 
Dickerson 
MacDonald 
40 
 
Larsen 
Shaw 
21 
 
Geneva 
Wilson 
89 
 
Jami 
Carney 
38 
 
 
 
 
<template > 
  <div > 
    <b-button  @click ="toggleBusy" > Toggle Busy State</b-button > 
    <b-table  :items ="items"  :busy ="isBusy"  class ="mt-3"  outlined > 
      <template  v-slot:table-busy > 
        <div  class ="text-center text-danger my-2" > 
          <b-spinner  class ="align-middle" > </b-spinner > 
          <strong > Loading...</strong > 
        </div > 
      </template > 
    </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        isBusy : false ,
        items : [
          { first_name : 'Dickerson' , last_name : 'MacDonald' , age : 40  },
          { first_name : 'Larsen' , last_name : 'Shaw' , age : 21  },
          { first_name : 'Geneva' , last_name : 'Wilson' , age : 89  },
          { first_name : 'Jami' , last_name : 'Carney' , age : 38  }
        ]
      }
    },
    methods : {
      toggleBusy() {
        this .isBusy = !this .isBusy
      }
    }
  }
 </script > 
  另请参阅下面的使用项目提供程序功能 以获取有关busy状态的其他信息。
注意: 
  当表处于busy状态时,将不 发出所有与单击相关的事件和悬停事件,以及排序已更改的事件。
 
  <b-table-lite>组件中没有忙碌的样式和插槽。
 
 
自定义数据渲染 
  可以使用scoped slots 或格式化程序回调函数或两者结合来为行中的每个数据字段自定义呈现。
范围字段插槽 
  范围字段槽使您可以更好地控制记录数据的显示方式。 您可以使用作用域内的插槽为特定字段提供自定义呈现。 如果要添加记录中不存在的额外字段,
  只需将其添加到fields
  'cell(' + field key + ')'。
  您可以使用默认的后备作用域作用域插槽'cell()'来格式化没有提供显式作用域插槽的所有单元格。
示例: 具有作用域插槽的自定义数据呈现 
Index 
Full Name 
Age 
Sex 
First name and age 
 
 
 1  
DOE , John 42 Male  John is 42 years old  
 
 2  
DOE , Jane 36 Female  Jane is 36 years old  
 
 3  
KINCADE , Rubin 73 Male  Rubin is 73 years old  
 
 4  
PARTRIDGE , Shirley 62 Female  Shirley is 62 years old  
 
 
 
 
 
<template > 
  <div > 
    <b-table  small  :fields ="fields"  :items ="items"  responsive ="sm" > 
      
      <template  v-slot:cell (index )="data" > 
        {{ data.index + 1 }}
      </template > 
      
      <template  v-slot:cell (name )="data" > 
        <b  class ="text-info" > {{ data.value.last.toUpperCase() }}</b > , <b > {{ data.value.first }}</b > 
      </template > 
      
      <template  v-slot:cell (nameage )="data" > 
        {{ data.item.name.first }} is {{ data.item.age }} years old
      </template > 
      
      <template  v-slot:cell ()="data" > 
        <i > {{ data.value }}</i > 
      </template > 
    </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        fields : [
          
          'index' ,
          
          { key : 'name' , label : 'Full Name'  },
          
          'age' ,
          
          'sex' ,
          
          { key : 'nameage' , label : 'First name and age'  }
        ],
        items : [
          { name : { first : 'John' , last : 'Doe'  }, sex : 'Male' , age : 42  },
          { name : { first : 'Jane' , last : 'Doe'  }, sex : 'Female' , age : 36  },
          { name : { first : 'Rubin' , last : 'Kincade'  }, sex : 'Male' , age : 73  },
          { name : { first : 'Shirley' , last : 'Partridge'  }, sex : 'Female' , age : 62  }
        ]
      }
    }
  }
 </script > 
  
  插槽的范围变量(上述示例中的data)将具有以下属性:
属性 
类型 
描述 
 
 
indexNumber 
相对于显示行的行号(从零开始索引) 
 
itemObject 
  该行的全部原始记录数据(即items[index])(在应用任何格式化程序之前)
 
 
valueAny 
  记录中此键的值(如果为虚拟列,则为null或 
  undefined),或字段的格式化程序 功能 
 
unformattedAny 
  在传递给字段的格式化程序 功能null或 
undefined)
 
 
fieldObject 
字段的规范化字段定义对象 
 
detailsShowingBoolean 
  如果该行的row-details范围的广告位可见,
则为true。有关其他信息,请参见下面的 row-details scoped slot is visible. See section 行详情信息支持 部分。
 
 
toggleDetailsFunction 
  可以调用此选项来切换行的 row-details 范围的作用域插槽。 有关其他信息,请参见下面的行详情信息支持 部分。
 
 
rowSelectedBoolean 
  如果已选择该行,则为true。有关其他信息,请参见行选择支持 部分。
 
 
selectRowFunction 
  调用时,选择当前行。 有关其他信息,请参见行选择支持 部分。
 
 
unselectRowFunction 
  调用时,取消选择当前行。 有关其他信息,请参见行选择支持 部分。
 
 
 
 
注意: 
index
  并非总是实际行的索引号,因为它是在对原始表数据应用了过滤,排序和分页之后计算的。 index值将参考显示的行号 。
该数字将与可选v-model 绑定
  在使用新的Vue 2.6 v-slot语法时,请注意,插槽名称不能 
  包含空格,并且在使用浏览器内DOM模板时,插槽名称将始终小写。 为了解决这个问题,您可以使用Vue的dynamic slot names 。
 
 
显示原始HTML 
  默认情况下,b-table
会在item数据和格式化程序功能的结果中转义HTML标记,如果需要在b-table
中显示原始HTML代码,则应在作用域内的字段插槽中的元素上使用v-html指令。
Text 
Html 
 
 
This is <i>escaped</i> content 
This is raw HTML   content   
 
 
 
<template > 
  <div > 
    <b-table  :items ="items" > 
      <template  v-slot:cell (html )="data" > 
        <span  v-html ="data.value" > </span > 
      </template > 
    </b-table > 
  </div > 
</template > 
<script > 
  export default {
    data() {
      return {
        items: [
          {
            text: 'This is <i > escaped</i >  content',
            html: 'This is <i > raw <strong > HTML</strong > </i >  <span  style ="color:red" > content</span > '
          }
        ]
      }
    }
  }
 </script >  警告:  
  请谨慎使用v-html方法显示用户提供的内容,因为这可能会使您的应用程序容易受到 XSS 攻击  
  (可选)您可以使用格式化程序回调函数来自定义字段输出。 为此,使用了字段的formatter属性。
此属性的值可以是String或函数引用。 如果为String值,则必须在父组件的方法中定义函数。 在将格式化程序作为函数提供时,除非已绑定到此上下文,否则必须在全局范围(在Vue的窗口或在Vue上作为全局mixin或作为匿名函数)进行声明。
  回调函数接受三个参数-value, key,和 
  item,并且应以字符串形式返回格式化的值(不支持HTML字符串)
示例: 使用格式化程序回调函数自定义数据呈现 
<template > 
  <div > 
    <b-table  :fields ="fields"  :items ="items" > 
      <template  v-slot:cell (name )="data" > 
        
        <a  :href ="`#${data.value.replace(/[^a-z]+/i,'-').toLowerCase()}`" > {{ data.value }}</a > 
      </template > 
    </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        fields : [
          {
            
            
            key : 'name' ,
            label : 'Full Name' ,
            formatter : 'fullName' 
          },
          
          'age' ,
          {
            
            key : 'sex' ,
            formatter : value  =>return  value.charAt(0 ).toUpperCase()
            }
          },
          {
            
            key : 'birthYear' ,
            label : 'Calculated Birth Year' ,
            formatter : (value, key, item ) =>  {
              return  new  Date ().getFullYear() - item.age
            }
          }
        ],
        items : [
          { name : { first : 'John' , last : 'Doe'  }, sex : 'Male' , age : 42  },
          { name : { first : 'Jane' , last : 'Doe'  }, sex : 'Female' , age : 36  },
          { name : { first : 'Rubin' , last : 'Kincade'  }, sex : 'male' , age : 73  },
          { name : { first : 'Shirley' , last : 'Partridge'  }, sex : 'female' , age : 62  }
        ]
      }
    },
    methods : {
      fullName(value) {
        return  `${value.first}  ${value.last} ` 
      }
    }
  }
 </script > 
  还可以为表格thead和 
  tfoot元素提供自定义呈现。 请注意,默认情况下,除非将
  foot-clone设置为true,否则不会呈现表页脚。
  页眉和页脚单元格的作用域插槽分别使用特殊的命名约定'head(<fieldkey>)'和
  'foot(<fieldkey>)'。 如果未提供字段的
  'foot(...)'插槽,但提供了
  'head(...)'插槽,则页脚将使用
  'head(...)'插槽内容。
  您可以使用默认的后备作用域作用域插槽'head()'和'foot()'来格式化没有提供显式作用域插槽的任何页眉或页脚单元格。
<template > 
  <div > 
    <b-table  :fields ="fields"  :items ="items"  foot-clone > 
      
      <template  v-slot:cell (name )="data" > 
        {{ data.value.first }} {{ data.value.last }}
      </template > 
      
      <template  v-slot:head (name )="data" > 
        <span  class ="text-info" > {{ data.label.toUpperCase() }}</span > 
      </template > 
      
      <template  v-slot:foot (name )="data" > 
        <span  class ="text-danger" > {{ data.label }}</span > 
      </template > 
      
      <template  v-slot:foot ()="data" > 
        <i > {{ data.label }}</i > 
      </template > 
    </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        fields : [
          
          { key : 'name' , label : 'Full Name'  },
          
          'age' ,
          
          'sex' 
        ],
        items : [
          { name : { first : 'John' , last : 'Doe'  }, sex : 'Male' , age : 42  },
          { name : { first : 'Jane' , last : 'Doe'  }, sex : 'Female' , age : 36  },
          { name : { first : 'Rubin' , last : 'Kincade'  }, sex : 'Male' , age : 73  },
          { name : { first : 'Shirley' , last : 'Partridge'  }, sex : 'Female' , age : 62  }
        ]
      }
    }
  }
 </script > 
  插槽可以选择范围(上例中的数据),并具有以下属性:
属性 
类型 
描述 
 
 
columnString 
字段的关键值 
 
fieldObject 
字段的对象(来自字段属性) 
 
labelString 
  字段标签值(也可以作为data.field.label使用)
 
 
selectAllRowsMethod 
  选择所有行(如果表处于可选 
 
clearSelectedMethod 
  取消选择所有行(如果表处于可选 
 
 
 
  在head(...)和
  foot(...)插槽内放置输入,按钮,选择或链接时,请注意,单击输入,选择,文本区域时,将不会发出单击事件(除非已禁用它们) 。 单击作用域内的插槽中的链接或按钮时,即使单击禁用,也不会发出用鼠标点击的标题
笔记: 
  在使用新的Vue 2.6 v-slot语法时,
请注意,插槽名称dynamic slot names 传递插槽名称
   
 
  如果您想在标题中添加其他行,可以通过thead-top插槽进行。
该插槽插入标头单元格行之前,并且不会被<tr>..</tr>标记自动封装。
建议使用BootstrapVue表格帮助器 组件,而不要使用本机浏览器表子元素。
Name and ID Type 1 
Type 2 
Type 3 
 
Name 
ID 
Type 1 
Type 2A 
Type 2B 
Type 2C 
Type 3 
 
 
Stephen Hawking 
1 
false 
true 
false 
false 
false 
 
Johnny Appleseed 
2 
false 
true 
true 
false 
false 
 
George Washington 
3 
false 
false 
false 
false 
true 
 
Albert Einstein 
4 
true 
false 
false 
true 
false 
 
Isaac Newton 
5 
true 
true 
false 
true 
false 
 
 
 
 
 
<template > 
  <div > 
    <b-table 
      :items ="items" 
      :fields ="fields" 
      responsive ="sm" 
    > 
      <template  v-slot:thead-top ="data" > 
        <b-tr > 
          <b-th  colspan ="2" > <span  class ="sr-only" > Name and ID</span > </b-th > 
          <b-th  variant ="secondary" > Type 1</b-th > 
          <b-th  variant ="primary"  colspan ="3" > Type 2</b-th > 
          <b-th  variant ="danger" > Type 3</b-th > 
        </b-tr > 
      </template > 
    </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        items : [
          { name : 'Stephen Hawking' , id : 1 , type1 : false , type2a : true , type2b : false , type2c : false , type3 : false  },
          { name : 'Johnny Appleseed' , id : 2 , type1 : false , type2a : true , type2b : true , type2c : false , type3 : false  },
          { name : 'George Washington' , id : 3 , type1 : false , type2a : false , type2b : false , type2c : false , type3 : true  },
          { name : 'Albert Einstein' , id : 4 , type1 : true , type2a : false , type2b : false , type2c : true , type3 : false  },
          { name : 'Isaac Newton' , id : 5 , type1 : true , type2a : true , type2b : false , type2c : true , type3 : false  },
        ],
        fields : [
          'name' ,
          { key : 'id' , label : 'ID'  },
          { key : 'type1' , label : 'Type 1'  },
          { key : 'type2a' , label : 'Type 2A'  },
          { key : 'type2b' , label : 'Type 2B'  },
          { key : 'type2c' , label : 'Type 2C'  },
          { key : 'type3' , label : 'Type 3'  }
        ]
      }
    }
  }
 </script > 
  插槽thead-top可以选择范围,接收具有以下属性的对象:
属性 
类型 
描述 
 
 
columnsNumber 
呈现表中的列数 
 
fieldsArray 
字段定义对象数组(标准化为对象数组格式) 
 
selectAllRowsMethod 
  选择所有行(如果表处于selectable 
 
clearSelectedMethod 
  取消选择所有行(如果表处于selectable 
 
 
 
  如果需要对<tfoot>的内容进行更大的布局控制,则可以使用可选范围的插槽
  custom-foot 提供自己的行和单元格。 使用BootstrapVue的表助手子组件
  <b-tr>, 
  <b-th>,和
  <b-td>生成自定义页脚布局。
  插槽custom-foot可以选择范围,接收具有以下属性的对象:
属性 
类型 
描述 
 
 
columnsNumber 
呈现表中的列数 
 
fieldsArray 
字段定义对象数组(标准化为对象数组格式) 
 
itemsArray 
当前显示的项记录的数组-过滤,排序和分页后 
 
 
 
笔记: 
  如果设置了custom-foot属性,则不会 渲染foot-clone。
 
  单击自定义英尺单元时,不会发出单击事件。
 
当表格处于视觉堆叠模式时,自定义页脚将不会显示。 
 
通过插槽自定义空白和EmptyFiltered渲染 
  除了使用empty-text, 
  empty-filtered-text, 
  empty-html,和
  empty-filtered-html外,还可以为没有数据的表提供自定义呈现,而表中没有要使用命名槽显示的数据。
  为了显示这些插槽,必须设置show-empty属性,并且项必须为falsy或长度为0的数组。
<div > 
  <b-table  :fields ="fields"  :items ="items"  show-empty > 
    <template  v-slot:empty ="scope" > 
      <h4 > {{ scope.emptyText }}</h4 > 
    </template > 
    <template  v-slot:emptyfiltered ="scope" > 
      <h4 > {{ scope.emptyFilteredText }}</h4 > 
    </template > 
  </b-table > 
</div > 
  插槽可以选择范围。 插槽的范围(上例中的作用域)将具有以下属性:
属性 
类型 
描述 
 
 
emptyHtmlString 
empty-html属性 
emptyTextString 
empty-text属性 
emptyFilteredHtmlString 
empty-filtered-html属性 
emptyFilteredTextString 
empty-filtered-text属性 
fieldsArray 
fields属性 
itemsArray 
items属性,Exposed here to check null vs [] 
 
 
高级功能 
  
  使用sticky-header属性启用垂直滚动表,并在表主体滚动时保持标题不变(粘滞)。
将prop设置为true(或没有显式值)将生成一个最大高度为300px的表。
要指定300px以外的最大高度,请将sticky-header
属性设置为有效的CSS高度(包括单位),即sticky-header="200px"。
如果表大于可用的水平空间,则启用粘性页眉的表也将自动始终保持水平响应,而不管responsive
<template > 
  <div > 
    <b-table  sticky-header  :items ="items"  head-variant ="light" > </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        items : [
          { heading1 : 'table cell' , heading2 : 'table cell' , heading3 : 'table cell'  },
          { heading1 : 'table cell' , heading2 : 'table cell' , heading3 : 'table cell'  },
          { heading1 : 'table cell' , heading2 : 'table cell' , heading3 : 'table cell'  },
          { heading1 : 'table cell' , heading2 : 'table cell' , heading3 : 'table cell'  },
          { heading1 : 'table cell' , heading2 : 'table cell' , heading3 : 'table cell'  },
          { heading1 : 'table cell' , heading2 : 'table cell' , heading3 : 'table cell'  },
          { heading1 : 'table cell' , heading2 : 'table cell' , heading3 : 'table cell'  },
          { heading1 : 'table cell' , heading2 : 'table cell' , heading3 : 'table cell'  },
          { heading1 : 'table cell' , heading2 : 'table cell' , heading3 : 'table cell'  },
          { heading1 : 'table cell' , heading2 : 'table cell' , heading3 : 'table cell'  },
          { heading1 : 'table cell' , heading2 : 'table cell' , heading3 : 'table cell'  },
          { heading1 : 'table cell' , heading2 : 'table cell' , heading3 : 'table cell'  }
        ]
      }
    }
  }
 </script > 粘性标头说明: 
  如果桌子上有stackedsticky-header属性将不起作用。
 
  粘性标头表包装在垂直滚动的<div>中,并设置了最大高度。
 
  需要BootstrapVue的自定义CSS才能支持sticky-header。
 
  Bootstrap v4使用CSS样式border-collapse: collapsed:
  在表格元素上折叠。 这样可以防止粘性标头上的边框“粘在”标头上,因此,当正文滚动时,边框也会滚动。 要解决此问题,请在表格上设置属性no-border-collapse
  (注意,使用带边框等功能时,这可能会导致边框宽度加倍)。
 
  粘性标头功能使用CSS样式位置:position: sticky。
  Internet Explorer不支持位置:position: sticky,因此对于IE 11,表标题将与表主体一起滚动。
 
 
粘性列 
  可以将列设置为粘性列,当表格具有水平滚动条时,列会停留在表格的左侧。 要将列设为stickyColumn,
请在字段的标题定义 中设置stickyColumn属性。 
粘性列仅在表格具有sticky-header属性设置和/或已设置响应
示例:粘性列和标题 
<template > 
  <div > 
    <div  class ="mb-2" > 
      <b-form-checkbox  v-model ="stickyHeader"  inline > Sticky header</b-form-checkbox > 
      <b-form-checkbox  v-model ="noCollapse"  inline > No border collapse</b-form-checkbox > 
    </div > 
    <b-table 
      :sticky-header ="stickyHeader" 
      :no-border-collapse ="noCollapse" 
      responsive 
      :items ="items" 
      :fields ="fields" 
    > 
      
      <template  v-slot:head (id )="scope" > 
        <div  class ="text-nowrap" > Row ID</div > 
      </template > 
      <template  v-slot:head ()="scope" > 
        <div  class ="text-nowrap" > 
          Heading {{ scope.label }}
        </div > 
      </template > 
    </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        stickyHeader : true ,
        noCollapse : false ,
        fields : [
          { key : 'id' , stickyColumn : true , isRowHeader : true , variant : 'primary'  },
          'a' ,
          'b' ,
          { key : 'c' , stickyColumn : true , variant : 'info'  },
          'd' ,
          'e' ,
          'f' ,
          'g' ,
          'h' ,
          'i' ,
          'j' ,
          'k' ,
          'l' 
        ],
        items : [
          { id : 1 , a : 0 , b : 1 , c : 2 , d : 3 , e : 4 , f : 5 , g : 6 , h : 7 , i : 8 , j : 9 , k : 10 , l : 11  },
          { id : 2 , a : 0 , b : 1 , c : 2 , d : 3 , e : 4 , f : 5 , g : 6 , h : 7 , i : 8 , j : 9 , k : 10 , l : 11  },
          { id : 3 , a : 0 , b : 1 , c : 2 , d : 3 , e : 4 , f : 5 , g : 6 , h : 7 , i : 8 , j : 9 , k : 10 , l : 11  },
          { id : 4 , a : 0 , b : 1 , c : 2 , d : 3 , e : 4 , f : 5 , g : 6 , h : 7 , i : 8 , j : 9 , k : 10 , l : 11  },
          { id : 5 , a : 0 , b : 1 , c : 2 , d : 3 , e : 4 , f : 5 , g : 6 , h : 7 , i : 8 , j : 9 , k : 10 , l : 11  },
          { id : 6 , a : 0 , b : 1 , c : 2 , d : 3 , e : 4 , f : 5 , g : 6 , h : 7 , i : 8 , j : 9 , k : 10 , l : 11  },
          { id : 7 , a : 0 , b : 1 , c : 2 , d : 3 , e : 4 , f : 5 , g : 6 , h : 7 , i : 8 , j : 9 , k : 10 , l : 11  },
          { id : 8 , a : 0 , b : 1 , c : 2 , d : 3 , e : 4 , f : 5 , g : 6 , h : 7 , i : 8 , j : 9 , k : 10 , l : 11  },
          { id : 9 , a : 0 , b : 1 , c : 2 , d : 3 , e : 4 , f : 5 , g : 6 , h : 7 , i : 8 , j : 9 , k : 10 , l : 11  },
          { id : 10 , a : 0 , b : 1 , c : 2 , d : 3 , e : 4 , f : 5 , g : 6 , h : 7 , i : 8 , j : 9 , k : 10 , l : 11  }
        ]
      }
    }
  }
 </script > 粘性列注释: 
  如果表格具有堆积 
  粘性列表需要sticky-header 和/或 
  responsive模式,并包装在可水平滚动的<div>中。
 
  当您将多个列设置为stickyColumn时,这些列将在视觉上相互堆叠,并且最左边的粘性列可能会从下一个粘性列下方“窥视”。 要解决此问题,请确保后面的stickyColumns与以前的sticky列具有相同的宽度或宽度。
 
  Bootstrap v4使用CSS样式border-collapse: collapsed在表格元素上折叠。
  这样可以防止粘滞列上的任何边界“粘连”到列上,因此,当正文滚动时,这些边界也将滚动。 要解决此问题,请在表格上设置属性
  no-border-collapse(注意,使用带边框等功能时,这可能会导致边框宽度加倍)。
 
为了支持粘性列,需要BootstrapVue的自定义CSS。 
  粘性列功能使用CSS样式position: sticky以定位列单元格。
  Internet Explorer不支持position: sticky,因此对于IE 11,粘性列将随表格主体滚动。
 
 
行详细信息支持 
  如果您可以选择显示其他记录信息(例如,在字段定义数组中未指定的列),则可以将作用域内的row-details与
特殊项目记录布尔属性_showDetails结合使用。
  如果记录的_showDetails属性设置为true,
并且存在row-details的槽,则将在该项目的正下方显示新行,并显示row-details的槽的内容。
  在作用域字段插槽中,您可以通过调用传递到该字段作用域插槽变量的toggleDetails函数,
  来切换行的row-details
  作用域插槽的可见性。 您可以使用作用域字段插槽变量detailsShowing确定row-details插槽的可见性。
注意:  
  如果直接在项目数据上操作_showDetails属性
(即不通过toggleDetails函数引用),
则_showDetails必须正确存在于项目数据中,以便正确地检测其值的更改。 阅读有关Vue的反应性限制 的更多信息。
可用的 行详细信息范围的变量属性: 
属性 
类型 
描述 
 
 
itemObject 
整行记录数据对象 
 
indexNumber 
当前可见行号 
 
fieldsArray 
标准化字段定义数组(以对象数组格式)
 
 
toggleDetailsFunction 
切换行的详细信息栏可见性的功能 
 
rowSelectedBoolean 
  如果已选择该行,则为true。 有关其他信息,
  请参见Row select support 部分。
 
 
selectRowFunction 
调用时,选择当前行。 有关其他信息,请参见Row select support 部分。 
 
unselectRowFunction 
调用时,取消选择当前行。 有关其他信息,请参见Row select support 部分。 
 
 
 
  注意:与行选择相关的范围属性仅在<b-table>中可用。
在下面的示例中,我们显示了两种切换细节可见性的方法:一种通过按钮,另一种通过复选框。 我们还有第三行详细信息,默认情况下最初会显示详细信息。
<template > 
  <div > 
    <b-table  :items ="items"  :fields ="fields"  striped  responsive ="sm" > 
      <template  v-slot:cell (show_details )="row" > 
        <b-button  size ="sm"  @click ="row.toggleDetails"  class ="mr-2" > 
          {{ row.detailsShowing ? 'Hide' : 'Show'}} Details
        </b-button > 
        
        <b-form-checkbox  v-model ="row.detailsShowing"  @change ="row.toggleDetails" > 
          Details via check
        </b-form-checkbox > 
      </template > 
      <template  v-slot:row-details ="row" > 
        <b-card > 
          <b-row  class ="mb-2" > 
            <b-col  sm ="3"  class ="text-sm-right" > <b > Age:</b > </b-col > 
            <b-col > {{ row.item.age }}</b-col > 
          </b-row > 
          <b-row  class ="mb-2" > 
            <b-col  sm ="3"  class ="text-sm-right" > <b > Is Active:</b > </b-col > 
            <b-col > {{ row.item.isActive }}</b-col > 
          </b-row > 
          <b-button  size ="sm"  @click ="row.toggleDetails" > Hide Details</b-button > 
        </b-card > 
      </template > 
    </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        fields : ['first_name' , 'last_name' , 'show_details' ],
        items : [
          { isActive : true , age : 40 , first_name : 'Dickerson' , last_name : 'Macdonald'  },
          { isActive : false , age : 21 , first_name : 'Larsen' , last_name : 'Shaw'  },
          {
            isActive : false ,
            age : 89 ,
            first_name : 'Geneva' ,
            last_name : 'Wilson' ,
            _showDetails : true 
          },
          { isActive : true , age : 38 , first_name : 'Jami' , last_name : 'Carney'  }
        ]
      }
    }
  }
 </script > 行选择支持 
  您可以通过使用<b-table>属性来selectable行。
  用户可以通过设置select-mode属性轻松地更改选择模式。
'multi': 每次单击都会选择/取消选择该行(默认模式)'single': 一次只能选择一行'range': 选择任何单击的行,取消选择任何其他行。 SHIFT  + 单击选择行范围,然后,
  和CTRL  (或 CMD ) +单击将切换选定的行。 
  当一个表格是selectable的并且用户单击一行时,<b-table>
  将发出row-selected的事件,并传递单个参数,该参数是所选项目的完整列表。将此参数视为只读。 
  还可以通过<b-table>实例上的以下公开方法以编程方式选择和取消选择行(即通过this.$refs对表实例的引用):
方法 
描述 
 
 
selectRow(index)
  选择具有给定索引号的行。
 
 
unselectRow(index)取消选择具有给定索引号的行。 
 
selectAllRows()
  选择表中的所有行,但在单模式下除外,在这种情况下,仅选择第一行。
 
 
clearSelected()取消选择所有行。 
 
isRowSelected(index)
  如果选择了具有给定 索引的行,则返回true;
  否则返回false。
 
 
 
 
程序行选择注意事项: 
index是在应用了过滤,排序和分页之后,表的可见行  从零开始的索引。
  在单模式下,selectRow(index)将取消选择任何先前选择的行。
 
  尝试在不存在的行上选择selectRow(index)或unselectRow(index)将被忽略。
 
  该表必须可选中所有这些方法才能生效。
 
  您可以通过设置no-select-on-click 属性来通过点击事件禁用行选择。 然后只能通过编程选择行。
 
 
行选择注释: 
  对表进行Sorting , filtering , 或 paginating 
  将清除活动的选择 。 如果需要,将以空数组([])发出行选择的事件。
   
  当表处于 可选模式时,
  出于可访问 的原因,所有数据项<tr>元素都将位于文档选项卡序列中(tabindex="0"),
  并且将 aria-selected属性设置为
  'true'或'false'取决于行的选定状态。
 
  当一个表是可选的时,
  该表将把aria-multiselect 属性设置为'false'
  (对于'单'模式)和'true'
  (对于多模式或范围模式)。
 
 
  当<b-table>是可选的时,它将在<table>元素上
 具有b-table-selectable和以下三个类之一(取决于所使用的模式):
b-table-select-singleb-table-select-multib-table-select-range 
  当选择至少一行时,b-table-selecting类
  将在<table>元素上处于活动状态。 
  选定行的行将对 <tr>元素应用一类b-table-row-selected。
  使用属性selected-variant将Bootstrap主题颜色应用于选定的行。
  注意,由于表变量在Bootstrap的CSS中定义的顺序,因此任何行变量都可能优先于选择变量。 如果您将使用其他方式来表示已选择行(例如,下例中的作用域字段槽),则可以将selected-variant设置为空字符串。
  selected-variant可以是任何标准(或自定义)引导程序基本颜色变体 ,
  也可以是优先于任何特定行或单元格变量的特殊表 active 变量 (默认值)。
出于可访问性的原因(特别是对于色盲用户或有色差问题的用户),强烈建议始终提供其他视觉方式来传达已选择行的信息,例如下面示例中显示的虚拟列。
 
Selected 
Is Active 
Age 
First Name 
Last Name 
 
 
   Not selected true 
40 
Dickerson 
Macdonald 
 
   Not selected false 
21 
Larsen 
Shaw 
 
   Not selected false 
89 
Geneva 
Wilson 
 
   Not selected true 
38 
Jami 
Carney 
 
 
 
Select all 
Clear selected 
Select 3rd row 
Unselect 3rd row 
 Selected Rows:
 
 
<template > 
  <div > 
    <b-form-group  label ="Selection mode:"  label-cols-md ="4" > 
      <b-form-select  v-model ="selectMode"  :options ="modes"  class ="mb-3" > </b-form-select > 
    </b-form-group > 
    <b-table 
      ref ="selectableTable" 
      selectable 
      :select-mode ="selectMode" 
      :items ="items" 
      :fields ="fields" 
      @row-selected ="onRowSelected" 
      responsive ="sm" 
    > 
      
      <template  v-slot:cell (selected )="{ rowSelected }" > 
        <template  v-if ="rowSelected" > 
          <span  aria-hidden ="true" > ✓ </span > 
          <span  class ="sr-only" > Selected</span > 
        </template > 
        <template  v-else > 
          <span  aria-hidden ="true" >   </span > 
          <span  class ="sr-only" > Not selected</span > 
        </template > 
      </template > 
    </b-table > 
    <p > 
      <b-button  size ="sm"  @click ="selectAllRows" > Select all</b-button > 
      <b-button  size ="sm"  @click ="clearSelected" > Clear selected</b-button > 
      <b-button  size ="sm"  @click ="selectThirdRow" > Select 3rd row</b-button > 
      <b-button  size ="sm"  @click ="unselectThirdRow" > Unselect 3rd row</b-button > 
    </p > 
    <p > 
      Selected Rows:<br > 
      {{ selected }}
    </p > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        modes : ['multi' , 'single' , 'range' ],
        fields : ['selected' , 'isActive' , 'age' , 'first_name' , 'last_name' ],
        items : [
          { isActive : true , age : 40 , first_name : 'Dickerson' , last_name : 'Macdonald'  },
          { isActive : false , age : 21 , first_name : 'Larsen' , last_name : 'Shaw'  },
          { isActive : false , age : 89 , first_name : 'Geneva' , last_name : 'Wilson'  },
          { isActive : true , age : 38 , first_name : 'Jami' , last_name : 'Carney'  }
        ],
        selectMode : 'multi' ,
        selected : []
      }
    },
    methods : {
      onRowSelected(items) {
        this .selected = items
      },
      selectAllRows() {
        this .$refs.selectableTable.selectAllRows()
      },
      clearSelected() {
        this .$refs.selectableTable.clearSelected()
      },
      selectThirdRow() {
        
        this .$refs.selectableTable.selectRow(2 )
      },
      unselectThirdRow() {
        
        this .$refs.selectableTable.unselectRow(2 )
      }
    }
  }
 </script > 表格内容过渡支持 
  可以通过内部使用Vue的<tbody>组件在
  元素上支持Vue<transition-group>。 提供了三个支持过渡的道具(所有三个道具默认为undefined):
属性 
类型 
描述 
 
 
tbody-transition-propsObject 
过渡组属性的对象
 
 
tbody-transition-handlersObject 
过渡组事件处理程序的对象 
 
primary-keyString 
字符串,指定要用作唯一行键的字段(必填) 
 
 
 
  要启用转换,您需要指定tbody-transition-props 和/或 tbody-transition-handlers,
  并且必须通过主键属性指定要用作唯一键的字段键。 
  您的数据必须具有一列(通过将主键属性设置为字段名称来指定),
  该列每行必须具有唯一值,以使转换正常工作。 主键字段的值可以是唯一的字符串或数字。 指定的字段不需要出现在呈现的表输出中,但是必须存在于item数据的每一行中。
您还必须提供CSS来处理项目中的过渡(如果使用CSS过渡)。
  有关Vue的列表呈现过渡的更多信息,请参见 Vue JS 官方文档 。
在下面的示例中,我们使用了以下自定义CSS:
table #table-transition-example  .flip-list-move  {
  transition : transform 1s ;
}
A (Click to sort Ascending)  
B (Click to sort Ascending)  
C (Click to sort Ascending)  
 
 
2 
Two 
Moose 
 
1 
Three 
Dog 
 
3 
Four 
Cat 
 
4 
One 
Mouse 
 
 
 
 
<template > 
  <div > 
    <b-table 
      id ="table-transition-example" 
      :items ="items" 
      :fields ="fields" 
      striped 
      small 
      primary-key ="a" 
      :tbody-transition-props ="transProps" 
    > </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        transProps : {
          
          name : 'flip-list' 
        },
        items : [
          { a : 2 , b : 'Two' , c : 'Moose'  },
          { a : 1 , b : 'Three' , c : 'Dog'  },
          { a : 3 , b : 'Four' , c : 'Cat'  },
          { a : 4 , b : 'One' , c : 'Mouse'  }
        ],
        fields : [
          { key : 'a' , sortable : true  },
          { key : 'b' , sortable : true  },
          { key : 'c' , sortable : true  }
        ]
      }
    }
  }
 </script > v-model 捆绑
  如果将变量绑定到v-model属性,
  则此变量的内容将是当前显示的项目记录(从零开始的索引,最大也页面大小-1)。 通常应将此变量(值属性)视为只读。
  v-model中的记录是项的过滤/分页浅表副本,
  因此,对v-model中记录属性的任何更改都将反映在原始项数组中(将项设置为提供程序功能时除外)。
  从v-model数组中删除记录不会从原始项目数组中删除记录,也不会从显示的行中删除记录。
注意:  
  请勿将任何值直接绑定到值属性。使用v-model绑定。
排序 
  如上文 字段 部分所述,
  您可以使列在<b-table>中可排序。
  单击可排序的列标题将按升序对列进行排序(从小到大),而再次单击将将排序方向切换为降序(从大到大)。 单击不可排序的列将清除排序(可以使用属性no-sort-reset禁用此功能)。
  您可以控制对哪一列进行预排序以及排序顺序(升序或降序)。 要预先指定要排序的列,请将sort-by属性设置为字段的键。
  通过将sort-desc设置为true(降序)
  或false(默认值升序)来设置排序方向。
上升 : 
  项目按从低到高的顺序(即A到Z)排序,并在第一行中以最低的值显示,在随后的行中以更高的值显示。
降序 : 
  项目按从高到低的顺序(即A到Z)排序,并在第一行中以最高值显示,在随后的行中以较低的值显示。
 
  通过添加.sync修饰符,
  可以将props sort-by和sort-desc转换为双向(可同步)props。
   然后,将根据当前的排序标准相应地更新您的绑定变量。 有关.sync属性修饰符的详细信息,请参见Vue 文档 。
  将排序依据设置为未在字段中定义为可排序的列将导致表未排序。
  设置属性foot-clone后,即使您具有自定义格式的页脚字段标题,
  页脚标题也将允许通过单击进行排序。 若要禁用排序图标和通过单击页脚中的标题单击来进行排序,请将无页脚排序属性设置为true。
Last Name (Click to sort Ascending)  
First Name (Click to sort Ascending)  
Age (Click to sort Descending)  
Is Active (Click to clear sorting)  
 
 
Shaw 
Larsen 
21 
false 
 
Carney 
Jami 
38 
true 
 
Macdonald 
Dickerson 
40 
true 
 
Wilson 
Geneva 
89 
false 
 
 
 
 Sorting By: age , Sort Direction: Ascending 
 
 
<template > 
  <div > 
    <b-table 
      :items ="items" 
      :fields ="fields" 
      :sort-by.sync ="sortBy" 
      :sort-desc.sync ="sortDesc" 
      responsive ="sm" 
    > </b-table > 
    <div > 
      Sorting By: <b > {{ sortBy }}</b > , Sort Direction:
      <b > {{ sortDesc ? 'Descending' : 'Ascending' }}</b > 
    </div > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        sortBy : 'age' ,
        sortDesc : false ,
        fields : [
          { key : 'last_name' , sortable : true  },
          { key : 'first_name' , sortable : true  },
          { key : 'age' , sortable : true  },
          { key : 'isActive' , sortable : false  }
        ],
        items : [
          { isActive : true , age : 40 , first_name : 'Dickerson' , last_name : 'Macdonald'  },
          { isActive : false , age : 21 , first_name : 'Larsen' , last_name : 'Shaw'  },
          { isActive : false , age : 89 , first_name : 'Geneva' , last_name : 'Wilson'  },
          { isActive : true , age : 38 , first_name : 'Jami' , last_name : 'Carney'  }
        ]
      }
    }
  }
 </script > 排序图标对齐 
  默认情况下,排序图标在标题单元格中显示为右对齐。 您可以通过在<b-table>上设置属性sort-icon-left 来更改图标以使其左对齐。
Last Name (Click to sort Ascending)  
First Name (Click to sort Ascending)  
Age (Click to sort Descending)  
Is Active (Click to clear sorting)  
 
 
Shaw 
Larsen 
21 
false 
 
Carney 
Jami 
38 
true 
 
Macdonald 
Dickerson 
40 
true 
 
Wilson 
Geneva 
89 
false 
 
 
 
 Sorting By: age , Sort Direction: Ascending 
 
 
<template > 
  <div > 
    <b-table 
      :items ="items" 
      :fields ="fields" 
      :sort-by.sync ="sortBy" 
      :sort-desc.sync ="sortDesc" 
      sort-icon-left 
      responsive ="sm" 
    > </b-table > 
    <div > 
      Sorting By: <b > {{ sortBy }}</b > , Sort Direction:
      <b > {{ sortDesc ? 'Descending' : 'Ascending' }}</b > 
    </div > 
  </div > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        sortBy : 'age' ,
        sortDesc : false ,
        fields : [
          { key : 'last_name' , sortable : true  },
          { key : 'first_name' , sortable : true  },
          { key : 'age' , sortable : true  },
          { key : 'isActive' , sortable : false  }
        ],
        items : [
          { isActive : true , age : 40 , first_name : 'Dickerson' , last_name : 'Macdonald'  },
          { isActive : false , age : 21 , first_name : 'Larsen' , last_name : 'Shaw'  },
          { isActive : false , age : 89 , first_name : 'Geneva' , last_name : 'Wilson'  },
          { isActive : true , age : 38 , first_name : 'Jami' , last_name : 'Carney'  }
        ]
      }
    }
  }
 </script > 自定义排序图标 
  排序图标是通过使用SVG背景图像生成的。可以通过更新BootstrapVue的SASS/SCSS变量并重新编译SCSS源代码来更改图标。有关自定义Bootstrap和BootstrapVue生成的CSS的详细信息,
  请参阅主题 部分。
排序比较常规 
  内部内置的默认sort-compare函数根据基础记录对象中的数据对指定的字段 键
  进行排序(如果字段具有格式化程序功能,并且该字段的sortByFormatted属性设置为true,则按格式化值排序)。 如果字段值是一个对象,则首先对其进行字符串化,然后进行排序。
注意事项: 
  内置的sort-compare例程无法基于字段数据的自定义呈现进行排序:作用域插槽仅用于显示,不会 影响基础数据。
 
  如果字段属性sortByFormatted设置为true,则具有 格式化程序 功能字段 (虚拟字段或常规字段)可以通过格式化程序功能返回的值进行排序。(可选)您可以将格式器函数引用传递给sortByFormatted,
  以在排序之前对值进行格式化。 默认值为false,它将按原始字段值排序。 这仅适用于内置的sortByFormatted例程。
 
  默认情况下,内部排序例程将首先对null, 
  undefined或空字符串值(小于任何其他值)进行排序。 
  要排序以使null, 
  undefined或空字符串值最后出现(大于任何其他值),
  请将sort-null-last属性设置为true。
 
 
  要自定义排序比较处理,请参阅下面的自定义排序比较例程 部分。
内部排序和语言环境处理 
  内部sort-compare例程使用
  String.prototype.localeCompare()Number
  也不是Date类型)。浏览器的本地localeCompare()
  方法接受一个语言环境字符串(或语言环境字符串数组)和一个用于控制字符串排序方式的options对象。
  默认选项为{ numeric: true },并且语言环境未定义(使用浏览器的默认语言环境)。
  您可以通过sort-compare-locale属性更改语言环境,
  以设置要进行排序的语言环境,也可以通过sort-compare-options属性传递排序选项。
  sort-compare-locale属性默认为undefined,
  它使用浏览器(或Node.js运行时)的默认语言环境。属性sort-compare-locale可以接受BCP 47 language tag 
  字符串或此类标签的数组。 有关语言环境的更多详细信息,请参阅MDN上的Locale identification and negotiation 。
  sort-compare-options属性接受包含以下任何属性的对象:
localeMatcher: 
  要使用的语言环境匹配算法。 可能的值为'lookup'和
  'best fit'。 默认值为'best fit'。
  有关此选项的信息,请参见 MDN Intl 页面 以获取详细信息。
sensitivity: 字符串中的哪些差异应导致比较结果值非零。 可能的值为:
'base': 
  只有基本字母不同的字符串才能比较为不相等。 示例:a ≠ b, a = á, 
  a = A。
'accent': 
  仅将基本字母或重音和其他音标不同的字符串视为不相等。示例:a ≠ b, 
  a ≠ á, 
  a = A。
'case': 仅将基本字母或大小写不同的字符串比较为不相等。例子: a ≠ b, a = á, a ≠ A.
'variant': (默认值) 基本字母,重音符号和其他变音符号或大小写不同的字符串比较不相等。 也可以考虑其他差异。 例子:a ≠ b, a ≠ á, a ≠ A. 
ignorePunctuation:
  标点符号是否应被忽略。 可能的值为true和
  false。 默认值为false。
numeric: 
  是否应使用数字排序规则,例如'1' < '2' < '10'。
  可能的值为true和
  false。 默认值为 false。
  请注意,不需要支持(浏览器,运行时)实现即可支持此属性,因此可能会忽略它。
caseFirst: 
  大写还是小写都应该首先排序。 可能的值为'upper', 
  'lower',或 
  'false'(使用语言环境的默认值)。默认值为'false'。 不需要实现来支持此属性。
'usage': 始终  
  始终由<b-table>设置为'sort'。
 
例子 1:  
  如果要对德语单词进行排序,请设置sort-compare-locale="de"
  (德语, ä排序在 z之前)
  或瑞典语设置sort-compare-locale="sv"
  (瑞典语,ä排序在z之后)
例子 2:  要比较数字字符串,并忽略大小写和重音符号:
<b-table  :sort-compare-options ="{ numeric: true, sensitivity: 'base' }"  ... > 注意事项: 
自定义排序比较例程 
  您可以通过将函数引用传递给属性sort-compare来提供自己的自定义排序比较例程。
  传递了sort-compare例程的七(7)个参数,其中最后4个是可选的:
  前两个参数(a和b)是要比较的行的记录对象
 
  第三个参数是排序的字段键(sortBy)
 
  第四个参数(sortDesc)是<b-table>
  将显示记录的顺序(true为降序,false为升序)
 
  第五个参数是对该字段格式化函数 的引用,
  或者是该字段的filterByFormatted值(如果它是函数引用)的引用。
  如果未找到格式化程序,则该值将是不确定的。如果需要按格式排序,则需要调用此方法以获取格式化的字段值:
  valA = formatter(a[key], key, a)和
 valB = formatter(b[key], key, b)值。
 如果字段的sortByFormatted属性为true或不是格式化程序函数的引用,或者找不到字段格式化程序的函数,则此字段未定义。
 
  第六个参数是sort-compare-options属性的值(默认为{ numeric: true })
 
  第七个参数是sort-compare-locale属性的值(默认为undefined)
 
 
  如果使用String.prototype.localeCompare()
  在大多数典型情况下,您只需要使用前三个参数。 第四个参数-排序方向-通常不应使用,因为b-table将处理该方向,
  并且通常仅在对null和/或 
  undefined值的排序方式进行特殊处理(即首先对null/undefined进行排序或 持续)。
  例程应为a[key] < b[key]
  返回-1(或负值),
  为a[key] === b[key]返回0,或为a[key] > b[key]返回1(或正值)。
    
  您的自定义排序比较例程还可以返回null或false,
  以回退到特定键的内置排序比较例程。 您可以使用此功能(即,通过返回null)让您的自定义排序比较例程仅处理某些字段(key),
  例如虚拟(作用域插槽)列的特殊情况,并具有内部(内置)排序比较 处理所有其他领域。
  默认的排序比较例程的工作原理与以下类似。 请注意,排序比较中不 使用第四个参数(排序方向):
function  sortCompare (aRow, bRow, key, sortDesc, formatter, compareOptions, compareLocale ) const  a = aRow[key] 
  const  b = bRow[key]
  if  (
    (typeof  a === 'number'  && typeof  b === 'number' ) ||
    (a instanceof  Date  && b instanceof  Date )
  ) {
    
    return  a < b ? -1  : a > b ? 1  : 0 
  } else  {
    
    return  toString(a).localeCompare(toString(b), compareLocale, compareOptions)
  }
}
function  toString (value ) if  (value === null  || typeof  value === 'undefined' ) {
    return  '' 
  } else  if  (value instanceof  Object ) {
    return  Object .keys(value)
      .sort()
      .map(key  =>' ' )
  } else  {
    return  String (value)
  }
}禁用本地排序 
  如果您想完全在应用中处理排序,则可以通过将属性no-local-sorting
  设置为true来禁用<b-table>中的本地排序,
  同时仍然保持可排序标头功能(通过sort-changed或 
  context-changed的事件以及可同步的道具)。
  您可以使用可同步属性sort-by.sync和sort-desc.sync 来检测排序列和方向的变化。
  同样,当单击可排序的列标题(或页脚)时,将通过包含<b-table>上下文对象的单个参数发出
    sort-changed的事件。 有关排序已更改事件和上下文对象的详细信息,请参见下面的检测排序更改 部分。
  当no-local-sorting为true时,sort-compare属性无效。
更改初始排序方向 
  通过使用排序方向属性,控制单击可排序的列标题时应用升序和降序排序的顺序。
   默认值'asc'首先应用升序排序(当当前未对列进行排序时)。
   要反转行为并首先按降序排序,请将其设置为'desc'。
  如果您不希望在单击另一个可排序的列标题时更改当前的排序方向,
  请将排序方向设置为'last'。 这将保持先前排序列的排序方向。
  对于单个列的初始排序方向(当列从未排序过渡到已排序时适用),请在字段中指定属性sortDirection。
  有关使用此功能的示例,请参见下面的完整事例 。
筛选 
  使用过滤时,默认情况下将过滤应用于原始项数组数据。 b-table提供了几种有关如何过滤数据的选项。
  当前无法通过作用域范围内的插槽 基于格式化结果进行过滤。
内置过滤 
  对该项目的行数据值进行字符串化(有关如何完成字符串化,请参见上面的排序部分),并且过滤器搜索该字符串化数据(不包括下划线'_')开头的任何特殊属性)。 默认情况下,字符串化还包括未显示在所提供列中的任何数据。
  使用默认的内置过滤器功能,
  过滤器支持值可以是字符串或RegExp对象(正则表达式不应设置/g全局标志)。
  如果字符串化的行包含提供的字符串值或与RegExp表达式匹配,则它将包含在显示的结果中。
  将过滤器属性设置为null或为空字符串以清除当前过滤器。
内置过滤选项 有几个选项可用于控制对过滤器应用哪些数据。
  filter-ignored-fields属性接受一个顶级(行数据的直接属性)字段键的数组,在过滤时应将其忽略。
 
  filter-included-fields性接受过滤时应使用的顶级(行数据的直接属性)字段键的数组。
  未包括在此数组中的所有其他字段键将被忽略。 要在特定列上进行过滤时,此功能非常方便。 如果指定的数组为空,则包括所有字段,但通过属性filter-included-fields
  指定的字段除外。 如果在忽略过滤器的字段和包含过滤器的字段中都指定了字段关键字,则包含过滤器的字段优先。
 
  通常,<b-table>根据已字符串化的记录数据进行过滤。
  如果该字段指定了格式化程序功能,
  则可以通过将字段定义属性 
  filterByFormatted 设置为true来基于格式化程序的结果进行过滤。
  如果该字段没有格式化程序功能,则忽略此选项。 您可以选择将格式器函数引用(仅用于过滤)传递给字段定义属性filterByFormatted。
 
 
  使用自定义过滤器 >功能或基于项目提供程序 的过滤时,props的filter-ignored-fields和
  filter-included-fields
  字段以及字段定义属性 filterByFormatted无效。
自定义过滤器 
  您还可以通过将属性 过滤器功能设置为自定义过滤器测试功能的引用来使用自定义过滤器功能。过滤器函数将传递两个参数:
   原始项目行记录数据对象,将此参数视为只读。 
 
  过滤器性的内容(可以是字符串,RegExp,数组或对象)
 
 
  如果记录符合您的条件,则该函数应返回true;如果要过滤掉记录,
  则该函数应返回false。
  为了对显示的数据进行适当的反应性更新,在不过滤时,应将过滤器属性设置为
  null或空字符串(而不是空对象或数组)。当过滤器属性为假值时,不会调用筛选器功能。
  空过滤器文本的显示取决于empty-filter-text的真实性。
过滤事件 
  当应用本地过滤,并且结果的项目数量发生变化时,<b-table>将发出带有两个参数的过滤事件:
数组引用,它是通过过滤例程的项目的完整列表。将此参数视为只读。  
通过过滤器测试的记录数(第一个参数的长度) 
 
  将属性过滤器设置为null或空字符串将清除本地项目过滤。
取消过滤条件的更改 在v2.1.0中已弃用  
  请使用<b-form-input>反跳功能。
  
  如果您的文本输入与<b-table>的过滤器属性相关联,
    则过滤过程将针对用户键入的每个字符进行。 对于大型项目数据集,此过程可能需要一段时间,并且可能会导致文本输入显示缓慢。
  为了帮助缓解这种情况,<b-table>
  通过filter-debounce属性接受一个反跳timout值(以毫秒为单位)。
  默认值为0(毫秒)。如果提供的值大于0,
  则过滤器将等待该时间,然后再更新表格结果。 如果过滤器属性值在该超时时间到期之前发生更改,则过滤将再次延迟,直到防抖动超时时间结束。
  使用时,filter-debounce的建议值应
  在100到
  200的范围内,但其他值可能更适合您的用例。
  在将提供程序过滤与项目提供程序功能 一起使用时,使用此道具会很有用,以帮助减少对后端API的调用次数。
过滤器 注意事项 
  有关使用过滤器功能的示例,请参见下面的完整实例 。
  <b-table>支持内置的项目数据分页。
  您可以通过将每页属性设置为想要显示的最大行数来控制一次显示多少行,
  并使用当前页属性指定要显示的页面(从第1页开始)。
  如果将当前页设置为大于计算的页面数的值,则不会显示任何行。
  您可以将<b-pagination><b-table>结合使用,以提供对分页的控制。
  将每页设置为0(默认值)将禁用本地项目分页功能。
使用项目提供者功能 
  如在项目 属性部分所述,通过通过项目属性指定函数引用,可以使用函数来提供行数据(项目)。
使用以下标签属性调用提供程序函数:
provider(ctx, [callback])  
  ctx 是与表状态关联的上下文对象,并且包含以下五个属性:
属性 
类型 
描述 
 
 
currentPageNumber 
  当前页码(从1开始,即当前页属性的值)
 
 
perPageNumber 
  每页显示的最大行数(每页属性的值)
 
 
filterString or RegExp or Object 
  过滤器属性的值
 
 
sortByString 
当前正在排序的列键,如果未排序则为空字符串 
 
sortDescBoolean 
  当前的排序方向(降序为true,升序为false)
 
 
apiUrlString 
  提供给api-url属性的值。如果未提供,则为null。
 
 
 
 
  第二个参数callback是使用回调异步方法时的可选参数。
示例: 返回数据数组(同步): 
function  myProvider (let  items = []
  
  
  return  items || []
}示例: 使用回调返回数据(异步): 
function  myProvider (ctx, callback ) const  params = '?page='  + ctx.currentPage + '&size='  + ctx.perPage
  this .fetchData('/some/url'  + params)
    .then(data  =>const  items = data.items
      
      callback(items)
    })
    .catch(()  =>return  null 
}示例: 使用Promise返回数据(异步): 
function  myProvider (ctx ) const  promise = axios.get('/some/url?page='  + ctx.currentPage + '&size='  + ctx.perPage)
  
  return  promise.then(data  =>const  items = data.items
    
    return  items || []
  })
}自动表格繁忙状态 
  使用项目提供程序功能时, <b-table> 自动跟踪/控制其繁忙状态,
  但是它还提供了一个繁忙属性,可用于覆盖内部繁忙状态
  或监视<b-pagination>当前繁忙 在您的应用程序中使用2-way.sync修饰符声明状态。
注意:  
  为了允许<b-table>完全跟踪其繁忙状态,自定义项提供程序功能应处理来自数据源的错误,
  并将空数组返回到<b-table>。
示例: 繁忙状态的使用 
<template > 
  <div > 
    <b-table 
      id ="my-table" 
      :busy.sync ="isBusy" 
      :items ="myProvider" 
      :fields ="fields" 
      ... 
    > </b-table > 
  </div > 
</template > 
<script > 
  export  default  {
    data () {
      return  {
        isBusy : false 
      }
    }
    methods : {
      myProvider () {
        
        
        
        let  promise = axios.get('/some/url' )
        return  promise.then((data ) =>  {
          const  items = data.items
          
          
          return (items)
        }).catch(error  =>return  []
        })
      }
    }
  }
 </script > 注意事项: 
  如果您将表手动置于繁忙状态,则在繁忙状态设置
  为false之前,
  将不会 调用/刷新项目提供程序。
 
  处于繁忙状态时(在提供程序更新期间自动设置,或在手动设置时),不会 发出所有与单击相关的和悬停事件以及排序更改的事件。
 
 
提供者分页,过滤和排序 
  默认情况下,在将数据传递到b-table进行显示之前,items provider功能负责
  所有数据的分页,过滤和排序 。
  您可以通过将以下b-table属性设置为true来禁用提供程序的分页,筛选和排序(分别):
属性 
类型 
默认值 
描述 
 
 
no-provider-pagingBoolean 
false
  如果为true,则启用使用b-table本地数据分页
 
 
no-provider-sortingBoolean 
false
  如果为true,则启用使用b-table本地排序
 
 
no-provider-filteringBoolean 
false如果为true,则启用使用b-table本地过滤 
 
 
 
  当no-provider-paging为false (默认值)时,您应仅返回最大的每页记录数。
注意事项: 
  <b-table>需要引用您的分页和过滤器,以便触发提供程序函数的调用。因此,
  请确保绑定到<b-table>上的每页, 
  当前页和 
  过滤器属性以触发提供程序更新功能调用(除非您将各自的no-provider-*
  属性设置为true)。
 
  当项目是提供程序功能时,no-local-sorting属性无效。
 
  使用提供程序筛选时,您可能会发现,将
  
    <b-form-input>
    上的防反跳属性
    
  设置为大于100ms的值将有助于减少用户在标准中键入的对后端API的调用次数。
 
 
强制刷新表数据 
  您还可以通过在$root上发出事件
  refresh::table来触发提供程序函数的刷新,其中单个参数是b-table
  的id。 您必须在表上具有唯一的id才能起作用。
this .$root.$emit('bv::refresh::table' , 'my-table' )Or by calling the refresh() method on the table reference
<div > 
  <b-table  ref ="table"  ...  > </b-table > 
</div > this .$refs.table.refresh()注意:  
  如果表处于繁忙状态(即当前正在运行提供程序更新),则刷新将一直等到当前更新完成。 如果当前有一个刷新待处理,并且请求一个新的刷新,则将仅发生一次刷新。
检测分类变化 
  通过侦听<b-table>
  排序已更改
  的事件,您可以检测到排序键和方向何时已更改。
<div > 
  <b-table  @sort-changed ="sortingChanged"  ...  > </b-table > 
</div > 
  排序更改事件提供了表的当前状态上下文对象的单个参数。 此上下文对象的格式与项目提供程序功能使用的格式相同。
export  default  {
  methods : {
    sortingChanged(ctx) {
      
      
    }
  }
}
  您也可以分别使用::sort-by.sync和 
  :sort-desc.sync双向属性来获取当前的sortBy和sortDesc值
  (有关详细信息,请参见上面的排序 部分)。
<div > 
  <b-table  :sort-by.sync ="mySortBy"  :sort-desc.sync ="mySortDesc"  ...  > </b-table > 
</div > 服务器端渲染 
  使用服务器端呈现(SSR)和项目提供程序功能时,必须格外小心。 确保在获取数据时处理服务器端可能需要的任何特殊情况!
  在文档中装入<b-table>后,它将自动触发提供程序更新调用。
轻量级表格 
  如果只需要简单地显示表格数据,那么<b-table-lite> 
  提供了一个很好的替代<b-table>的方法。
  <b-table-lite>组件提供了
  <b-table>的所有样式和格式设置功能(包括行详细信息和堆叠支持),但不包括 以下功能:
筛选 
Sorting 
排序 
项目提供者支持 
可选行 
繁忙的表格状态和样式 
固定顶排和底排 
空行支持 
 
表精简版作为插件 
  TablePlugin包括<b-table-lite>。
  为了方便起见,BootstrapVue还提供了TableLitePlugin,
  该表仅安装<b-table-lite>。TableLitePlugin可以用作名为export的顶层。
简单表格 
  <b-table-simple>组件使用户可以完全控制表内容的呈现,
  同时提供基本的Bootstrap v4表样式。<b-table-simple>是围绕
  <table>元素的包装器组件。
  通过默认插槽,
  可以在组件内部使用任何或所有BootstrapVue表格帮助器组件 :
  <b-thead>, 
<b-tfoot>, 
<b-tbody>, 
<b-tr>, 
<b-th>,
 <b-td>,和HTML5元素
 <caption>, 
 <colgroup>和
 <col>。与组件名称相反,
 可以使用<b-table-simple>创建简单或复杂的表布局。
  <b-table-simple>通过属性提供基本的样式选项:
  striped, 
   bordered,
    borderless,
     outlined, 
     small, 
     hover, 
     dark,
      fixed, 
      responsive和
      sticky-header。
       请注意,堆叠模式可用,
       但是需要一些额外的标记来生成单元格标题,如下面的简单表格和堆叠模式 部分所述。
       还支持粘性列,但是还需要一些额外的标记来指定哪些列是粘性的。 有关使用 粘性列 的更多信息,请参见下文。
  由于b-table-simple只是一个包装器组件,您将需要在其中封装内容,
  因此它不提供<b-table>的任何高级功能(即行事件,头事件,排序,分页,过滤) ,脚步克隆,项目,字段等)。
Items sold in August, grouped by Country and City:
 
 
 
 
Region 
Clothes 
Accessories 
 
Country 
City 
Trousers 
Skirts 
Dresses 
Bracelets 
Rings 
 
 
Belgium 
Antwerp 
56 
22 
43 
72 
23 
 
Gent 
46 
18 
50 
61 
15 
 
Brussels 
51 
27 
38 
69 
28 
 
The Netherlands 
Amsterdam 
89 
34 
69 
85 
38 
 
Utrecht 
80 
12 
43 
36 
19 
 
 
 Total Rows: 5  
 
 
 
 
 
<div > 
  <b-table-simple  hover  small  caption-top  responsive > 
    <caption > Items sold in August, grouped by Country and City:</caption > 
    <colgroup > <col > <col > </colgroup > 
    <colgroup > <col > <col > <col > </colgroup > 
    <colgroup > <col > <col > </colgroup > 
    <b-thead  head-variant ="dark" > 
      <b-tr > 
        <b-th  colspan ="2" > Region</b-th > 
        <b-th  colspan ="3" > Clothes</b-th > 
        <b-th  colspan ="2" > Accessories</b-th > 
      </b-tr > 
      <b-tr > 
        <b-th > Country</b-th > 
        <b-th > City</b-th > 
        <b-th > Trousers</b-th > 
        <b-th > Skirts</b-th > 
        <b-th > Dresses</b-th > 
        <b-th > Bracelets</b-th > 
        <b-th > Rings</b-th > 
      </b-tr > 
    </b-thead > 
    <b-tbody > 
      <b-tr > 
        <b-th  rowspan ="3" > Belgium</b-th > 
        <b-th  class ="text-right" > Antwerp</b-th > 
        <b-td > 56</b-td > 
        <b-td > 22</b-td > 
        <b-td > 43</b-td > 
        <b-td  variant ="success" > 72</b-td > 
        <b-td > 23</b-td > 
      </b-tr > 
      <b-tr > 
        <b-th  class ="text-right" > Gent</b-th > 
        <b-td > 46</b-td > 
        <b-td  variant ="warning" > 18</b-td > 
        <b-td > 50</b-td > 
        <b-td > 61</b-td > 
        <b-td  variant ="danger" > 15</b-td > 
      </b-tr > 
      <b-tr > 
        <b-th  class ="text-right" > Brussels</b-th > 
        <b-td > 51</b-td > 
        <b-td > 27</b-td > 
        <b-td > 38</b-td > 
        <b-td > 69</b-td > 
        <b-td > 28</b-td > 
      </b-tr > 
      <b-tr > 
        <b-th  rowspan ="2" > The Netherlands</b-th > 
        <b-th  class ="text-right" > Amsterdam</b-th > 
        <b-td  variant ="success" > 89</b-td > 
        <b-td > 34</b-td > 
        <b-td > 69</b-td > 
        <b-td > 85</b-td > 
        <b-td > 38</b-td > 
      </b-tr > 
      <b-tr > 
        <b-th  class ="text-right" > Utrecht</b-th > 
        <b-td > 80</b-td > 
        <b-td  variant ="danger" > 12</b-td > 
        <b-td > 43</b-td > 
        <b-td > 36</b-td > 
        <b-td  variant ="warning" > 19</b-td > 
      </b-tr > 
    </b-tbody > 
    <b-tfoot > 
      <b-tr > 
        <b-td  colspan ="7"  variant ="secondary"  class ="text-right" > 
          Total Rows: <b > 5</b > 
        </b-td > 
      </b-tr > 
    </b-tfoot > 
  </b-table-simple > 
</div > 
  在响应式或粘滞标题模式下,
  <table>元素被包装在<div>元素内。
  如果您需要将其他类应用于<table>元素,请使用table-classes属性。
  赋予<b-table-simple>的任何其他属性将始终应用于<table>元素。
简单表格和堆叠模式 
  当表处于堆叠模式时,<b-table-simple>主体单元格上需要一些附加标记。
  具体来说,BootstrapVue使用特殊的数据属性来创建单元格的标题,您可以通过 堆栈标题属性将其提供给<b-td>或 
  <b-th>。
  仅支持纯字符串(不支持HTML标记),因为我们使用伪元素:: ::before 和 css 
  content属性。
这是与上述相同的表,设置为始终堆叠,具有额外的标记要处理堆叠模式(专门用于生成单元格标题):
Items sold in August, grouped by Country and City:
 
 
 
 
Region 
Clothes 
Accessories 
 
Country 
City 
Trousers 
Skirts 
Dresses 
Bracelets 
Rings 
 
 
Belgium (3 Cities)
Antwerp
56
22
43
72
23
 
Gent
46
18
50
61
15
 
Brussels
51
27
38
69
28
 
The Netherlands (2 Cities)
Amsterdam
89
34
69
85
38
 
Utrecht
80
12
43
36
19
 
 
 Total Rows: 5  
 
 
 
 
<div > 
  <b-table-simple  hover  small  caption-top  stacked > 
    <caption > Items sold in August, grouped by Country and City:</caption > 
    <colgroup > <col > <col > </colgroup > 
    <colgroup > <col > <col > <col > </colgroup > 
    <colgroup > <col > <col > </colgroup > 
    <b-thead  head-variant ="dark" > 
      <b-tr > 
        <b-th  colspan ="2" > Region</b-th > 
        <b-th  colspan ="3" > Clothes</b-th > 
        <b-th  colspan ="2" > Accessories</b-th > 
      </b-tr > 
      <b-tr > 
        <b-th > Country</b-th > 
        <b-th > City</b-th > 
        <b-th > Trousers</b-th > 
        <b-th > Skirts</b-th > 
        <b-th > Dresses</b-th > 
        <b-th > Bracelets</b-th > 
        <b-th > Rings</b-th > 
      </b-tr > 
    </b-thead > 
    <b-tbody > 
      <b-tr > 
        <b-th  rowspan ="3"  class ="text-center" > Belgium (3 Cities)</b-th > 
        <b-th  stacked-heading ="City"  class ="text-left" > Antwerp</b-th > 
        <b-td  stacked-heading ="Clothes: Trousers" > 56</b-td > 
        <b-td  stacked-heading ="Clothes: Skirts" > 22</b-td > 
        <b-td  stacked-heading ="Clothes: Dresses" > 43</b-td > 
        <b-td  stacked-heading ="Accessories: Bracelets"  variant ="success" > 72</b-td > 
        <b-td  stacked-heading ="Accessories: Rings" > 23</b-td > 
      </b-tr > 
      <b-tr > 
        <b-th  stacked-heading ="City" > Gent</b-th > 
        <b-td  stacked-heading ="Clothes: Trousers" > 46</b-td > 
        <b-td  stacked-heading ="Clothes: Skirts"  variant ="warning" > 18</b-td > 
        <b-td  stacked-heading ="Clothes: Dresses" > 50</b-td > 
        <b-td  stacked-heading ="Accessories: Bracelets" > 61</b-td > 
        <b-td  stacked-heading ="Accessories: Rings"  variant ="danger" > 15</b-td > 
      </b-tr > 
      <b-tr > 
        <b-th  stacked-heading ="City" > Brussels</b-th > 
        <b-td  stacked-heading ="Clothes: Trousers" > 51</b-td > 
        <b-td  stacked-heading ="Clothes: Skirts" > 27</b-td > 
        <b-td  stacked-heading ="Clothes: Dresses" > 38</b-td > 
        <b-td  stacked-heading ="Accessories: Bracelets" > 69</b-td > 
        <b-td  stacked-heading ="Accessories: Rings" > 28</b-td > 
      </b-tr > 
      <b-tr > 
        <b-th  rowspan ="2"  class ="text-center" > The Netherlands (2 Cities)</b-th > 
        <b-th  stacked-heading ="City" > Amsterdam</b-th > 
        <b-td  stacked-heading ="Clothes: Trousers"  variant ="success" > 89</b-td > 
        <b-td  stacked-heading ="Clothes: Skirts" > 34</b-td > 
        <b-td  stacked-heading ="Clothes: Dresses" > 69</b-td > 
        <b-td  stacked-heading ="Accessories: Bracelets" > 85</b-td > 
        <b-td  stacked-heading ="Accessories: Rings" > 38</b-td > 
      </b-tr > 
      <b-tr > 
        <b-th  stacked-heading ="City" > Utrecht</b-th > 
        <b-td  stacked-heading ="Clothes: Trousers" > 80</b-td > 
        <b-td  stacked-heading ="Clothes: Skirts"  variant ="danger" > 12</b-td > 
        <b-td  stacked-heading ="Clothes: Dresses" > 43</b-td > 
        <b-td  stacked-heading ="Accessories: Bracelets" > 36</b-td > 
        <b-td  stacked-heading ="Accessories: Rings"  variant ="warning" > 19</b-td > 
      </b-tr > 
    </b-tbody > 
    <b-tfoot > 
      <b-tr > 
        <b-td  colspan ="7"  variant ="secondary"  class ="text-right" > 
          Total Rows: <b > 5</b > 
        </b-td > 
      </b-tr > 
    </b-tfoot > 
  </b-table-simple > 
</div > 
  像 <b-table>和
  <b-table-lite>一样,
  在可视地堆叠表格时,可视地隐藏了表头()和页脚( 
 )。 如果需要页眉或页脚,可以通过在<b-tbody>组件内部
    (或在第二个<b-tbody>组件中)创建一个额外的<b-tr>
    并将其设置为columnheader子<b-th>单元格,
    并使用Bootstrap v4响应式显示实用程序类 在表不再以视觉方式堆叠时(该断点应与堆叠的表匹配),
    将某个特定断点上方的多余行(或<b-tbody>)隐藏起来 您已设置的断点),
    即<b-tr class="d-md-none">会在中等和较宽的屏幕上隐藏该行,
    而<b-tbody class="d-md-none">会将该行隐藏 在中型和大型屏幕上分组。
注意事项:  
  
  <b-table-simple> 的堆栈模式要求您使用BootstrapVue表格帮助器组件 。
  常规 <tbody>, 
  <tr>, 
  <td>和<th>>元素标签的使用将无法按预期方式工作,
  也不会自动应用任何必需的可访问性属性。
简单表格和粘性列 
  <b-table-simple>支持粘性列,
  但是您将需要在要粘性列中的每个表单元格
  (thead, 
  tbody,和
  tfoot行组中)上设置粘性列支持。 例如:
<b-table-simple  responsive > 
  <b-thead > 
    <b-tr > 
      <b-th  sticky-column > Sticky Column Header</b-th > 
      <b-th > Heading 1</b-th > 
      <b-th > Heading 2</b-th > 
      <b-th > Heading 3</b-th > 
      <b-th > Heading 4</b-th > 
    </b-tr > 
  </b-thead > 
  <b-tbody > 
    <b-tr > 
      <b-th  sticky-column > Sticky Column Row Header</b-th > 
      <b-td > Cell</b-td > 
      <b-td > Cell</b-td > 
      <b-td > Cell</b-td > 
      <b-td > Cell</b-td > 
    </b-tr > 
    <b-tr > 
      <b-th  sticky-column > Sticky Column Row Header</b-th > 
      <b-td > Cell</b-td > 
      <b-td > Cell</b-td > 
      <b-td > Cell</b-td > 
      <b-td > Cell</b-td > 
    </b-tr > 
  </b-tbody > 
  <b-tfoot > 
    <b-tr > 
      <b-th  sticky-column > Sticky Column Footer</b-th > 
      <b-th > Heading 1</b-th > 
      <b-th > Heading 2</b-th > 
      <b-th > Heading 3</b-th > 
      <b-th > Heading 4</b-th > 
    </b-tr > 
  </b-tfoot > 
</b-table-responsive > 
  与<b-table>和
  <b-table-lite>一样,
  当将 堆叠属性设置在<b-table-simple>上时,不支持粘性列。
表格简单易用 
  TablePlugin包括<b-table-simple>和所有帮助程序组件。
  为了方便起见,BootstrapVue还提供了TableSimplePlugin,
  该表可安装<b-table-simple>和所有帮助程序组件。
  TableSimplePlugin可以用作名为export的顶层。
表格助手组件 
  当使用<b-table-simple>或命名槽
  top-row, 
bottom-row, 
thead-top,和
custom-foot(所有这些都接受表子元素)时,BootstrapVue提供了其他辅助子组件。 帮助器组件如下:
b-tbody (<b-table-simple> only)b-thead (<b-table-simple> only)b-tfoot (<b-table-simple> only)b-trb-tdb-th 
  这些组件经过优化,可以处理将变体转换为适当的类(例如处理表格暗模式),
  并自动应用某些辅助功能属性(即角色和
  作用域)。
  他们还可以生成堆积表以及粘性标题和列,标记。组件<b-table>和
  <b-table-lite>在内部使用这些帮助程序组件。
  在简单表 示例中,
  我们使用帮助器组件<b-thead>, 
  <b-tbody>, 
  <b-tr>, 
  <b-th>, 
  <b-tr>和 
  <b-tfoot>。
  虽然您可以在<b-table-simple>中使用常规表子元素
  (即<tbody>, 
  <tr>, 
  <td>等),
  并在顶部行,底部行和
  thead-top中使用命名的插槽,
  建议使用这些BootstrapVue表<b-t*>帮助器组件。
  请注意,没有<caption>, 
  <colgroup>或 
  <col>的帮助器组件,因此您可以直接在<b-table-simple>中使用这三个HTML5元素。
  表格助手组件<b-tr>,
  <b-td>和 
  <b-th>都接受variant属性,
  它将应用Bootstrap主题颜色之一(通过主题化 支持自定义主题颜色),
  并将自动调整为 根据表格的暗模式使用正确的变体类。
 
  辅助组件<b-thead>, 
  <b-tfoot>分别接受head-variant和
  foot-variant属性。
  支持的值是'dark', 
  'light'或
  null (
    null使用默认的表格背景)。
    这些变体还控制文本颜色(“深色”变体为浅色文本,
    “浅色”变体为深色文本)。
 
  可访问性属性的角色和 
  作用域会根据其位置
  (thead,tbody或tfoot)及其行距或
  colspan属性在
  <b-th>和
    <b-td>组件上自动设置。
    您可以通过在帮助程序组件上设置适当的属性来覆盖自动 作用域和
    角色值。
 
  对于<b-tbody>, 
  <b-thead>,和
   <b-tfoot> 帮助器组件,
   将应用适当的默认'rowgroup',除非您通过提供角色属性来
   覆盖角色。
 
  对于<b-tr>帮助器组件,除非您通过提供角色属性来覆盖
  角色,否则将应用适当的默认角色“行”。
  <b-tr>不添加范围。
 
  当使用tbody-transition-props和
  tbody-transition-handlers属性中的一个或两个时,
  <b-tbody>元素支持渲染Vue<transition-group> 。
  有关更多详细信息,请参见 表格内容过渡支持  部分。
 
 
辅助功能 
  当使用特定功能时,<b-table>和
  <b-table-lite>组件将尝试提供可能的最佳可访问性标记。
  在辅助表组件中使用<b-table-simple>时,元素将默认应用适当的角色,您可以选择覆盖这些角色。
  在<b-table-simple>帮助器组件上使用单击处理程序时,将需要应用适当的aria-*属性,
  并设置tabindex="0"以使屏幕阅读器和纯键盘用户可以访问该单击操作。 您还应该收听@keydown.enter。
    阻止用户按ENTER 触发您单击单元格或行(仅键盘用户可访问性要求)。
标题可访问性 
  当列(字段)是可排序的(仅<b-table>)
  或注册了单击鼠标左键的侦听器(<b-table>和<b-table-lite>)时,
    页眉(和页脚) <th>单元格将放置在文档选项卡序列中
    (通过tabindex="0"),以供纯键盘和屏幕阅读器用户访问,以便用户可以触发单击(通过在标题单元格上按ENTER 键)。
数据行可访问性 
  当表处于可选模式(仅<b-table>,
    并且未设置属性 no-select-on-click)时,
    或者如果注册了行单击事件监听器(<b-table>和
    <b-table-lite>),
    所有数据项行(<tr>元素)
    都将放入文档选项卡序列中(通过tabindex="0"),以使纯键盘和屏幕阅读器用户可以通过按ENTER 
    键来单击行或SPACE 。
  将表项目行按文档选项卡顺序放置(<b-table>和
  <b-table-lite>)时,它们在集中时也将支持基本的键盘导航:
DOWN  将移至下一行UP  将移至上一行END  or DOWN +SHIFT  将移至最后一行HOME  or UP +SHIFT 将移至第一行ENTER  or SPACE  单击该行。 
行事件可访问性 
  请注意,以下基于行的事件/操作(可用于<b-table>
  和<b-table-lite>)被认为是不可访问的,并且仅应在功能不重要或可以通过其他方式提供的情况下使用:
row-dblclickedrow-contextmenurow-hoveredrow-unhoveredrow-middle-clicked 
  请注意,并非所有浏览器(即IE,Safari和大多数移动浏览器)都支持行单击中间事件。
  当侦听源自不支持输入或导航的元素的行单击中间事件时,
  您通常会希望明确阻止其他默认操作映射到鼠标中键的向下操作。 在Windows上通常是自动滚动,在macOS和Linux上通常是剪贴板粘贴。 这可以通过防止mousedown或
  pointerdown事件的默认行为来完成。
  此外,您可能需要避免在右键单击后打开默认系统或浏览器上下文菜单。 由于操作系统之间的时间差异,这也不是行中间单击可预防的默认行为。
  而是可以通过防止row-contextmenu事件的默认行为来完成此操作。
建议您在尽可能多的浏览器和设备变体中测试您的应用,以确保您的应用能够处理各种与事件不一致的情况。
完整的例子 
Person Full name (Click to sort Ascending)  
Person age (Click to sort Ascending)  
is Active (Click to sort Ascending)  
Actions 
 
 
 Dickerson Macdonald 
40
Yes
 Info modal  
 Show Details  
 
 Larsen Shaw 
21
No
 Info modal  
 Show Details  
 
 Mini Navarro 
9
No
 Info modal  
 Show Details  
 
 Geneva Wilson 
89
No
 Info modal  
 Show Details  
 
 Jami Carney 
38
Yes
 Info modal  
 Show Details  
 
 
 
 
<template > 
  <b-container  fluid > 
    
    <b-row > 
      <b-col  lg ="6"  class ="my-1" > 
        <b-form-group 
          label ="Sort" 
          label-cols-sm ="3" 
          label-align-sm ="right" 
          label-size ="sm" 
          label-for ="sortBySelect" 
          class ="mb-0" 
        > 
          <b-input-group  size ="sm" > 
            <b-form-select  v-model ="sortBy"  id ="sortBySelect"  :options ="sortOptions"  class ="w-75" > 
              <template  v-slot:first > 
                <option  value ="" > -- none --</option > 
              </template > 
            </b-form-select > 
            <b-form-select  v-model ="sortDesc"  size ="sm"  :disabled ="!sortBy"  class ="w-25" > 
              <option  :value ="false" > Asc</option > 
              <option  :value ="true" > Desc</option > 
            </b-form-select > 
          </b-input-group > 
        </b-form-group > 
      </b-col > 
      <b-col  lg ="6"  class ="my-1" > 
        <b-form-group 
          label ="Initial sort" 
          label-cols-sm ="3" 
          label-align-sm ="right" 
          label-size ="sm" 
          label-for ="initialSortSelect" 
          class ="mb-0" 
        > 
          <b-form-select 
            v-model ="sortDirection" 
            id ="initialSortSelect" 
            size ="sm" 
            :options ="['asc', 'desc', 'last']" 
          > </b-form-select > 
        </b-form-group > 
      </b-col > 
      <b-col  lg ="6"  class ="my-1" > 
        <b-form-group 
          label ="Filter" 
          label-cols-sm ="3" 
          label-align-sm ="right" 
          label-size ="sm" 
          label-for ="filterInput" 
          class ="mb-0" 
        > 
          <b-input-group  size ="sm" > 
            <b-form-input 
              v-model ="filter" 
              type ="search" 
              id ="filterInput" 
              placeholder ="Type to Search" 
            > </b-form-input > 
            <b-input-group-append > 
              <b-button  :disabled ="!filter"  @click ="filter = ''" > Clear</b-button > 
            </b-input-group-append > 
          </b-input-group > 
        </b-form-group > 
      </b-col > 
      <b-col  lg ="6"  class ="my-1" > 
        <b-form-group 
          label ="Filter On" 
          label-cols-sm ="3" 
          label-align-sm ="right" 
          label-size ="sm" 
          description ="Leave all unchecked to filter on all data" 
          class ="mb-0" > 
          <b-form-checkbox-group  v-model ="filterOn"  class ="mt-1" > 
            <b-form-checkbox  value ="name" > Name</b-form-checkbox > 
            <b-form-checkbox  value ="age" > Age</b-form-checkbox > 
            <b-form-checkbox  value ="isActive" > Active</b-form-checkbox > 
          </b-form-checkbox-group > 
        </b-form-group > 
      </b-col > 
      <b-col  sm ="5"  md ="6"  class ="my-1" > 
        <b-form-group 
          label ="Per page" 
          label-cols-sm ="6" 
          label-cols-md ="4" 
          label-cols-lg ="3" 
          label-align-sm ="right" 
          label-size ="sm" 
          label-for ="perPageSelect" 
          class ="mb-0" 
        > 
          <b-form-select 
            v-model ="perPage" 
            id ="perPageSelect" 
            size ="sm" 
            :options ="pageOptions" 
          > </b-form-select > 
        </b-form-group > 
      </b-col > 
      <b-col  sm ="7"  md ="6"  class ="my-1" > 
        <b-pagination 
          v-model ="currentPage" 
          :total-rows ="totalRows" 
          :per-page ="perPage" 
          align ="fill" 
          size ="sm" 
          class ="my-0" 
        > </b-pagination > 
      </b-col > 
    </b-row > 
    
    <b-table 
      show-empty 
      small 
      stacked ="md" 
      :items ="items" 
      :fields ="fields" 
      :current-page ="currentPage" 
      :per-page ="perPage" 
      :filter ="filter" 
      :filterIncludedFields ="filterOn" 
      :sort-by.sync ="sortBy" 
      :sort-desc.sync ="sortDesc" 
      :sort-direction ="sortDirection" 
      @filtered ="onFiltered" 
    > 
      <template  v-slot:cell (name )="row" > 
        {{ row.value.first }} {{ row.value.last }}
      </template > 
      <template  v-slot:cell (actions )="row" > 
        <b-button  size ="sm"  @click ="info(row.item, row.index, $event.target)"  class ="mr-1" > 
          Info modal
        </b-button > 
        <b-button  size ="sm"  @click ="row.toggleDetails" > 
          {{ row.detailsShowing ? 'Hide' : 'Show' }} Details
        </b-button > 
      </template > 
      <template  v-slot:row-details ="row" > 
        <b-card > 
          <ul > 
            <li  v-for ="(value, key) in row.item"  :key ="key" > {{ key }}: {{ value }}</li > 
          </ul > 
        </b-card > 
      </template > 
    </b-table > 
    
    <b-modal  :id ="infoModal.id"  :title ="infoModal.title"  ok-only  @hide ="resetInfoModal" > 
      <pre > {{ infoModal.content }}</pre > 
    </b-modal > 
  </b-container > 
</template > 
<script > 
  export  default  {
    data() {
      return  {
        items : [
          { isActive : true , age : 40 , name : { first : 'Dickerson' , last : 'Macdonald'  } },
          { isActive : false , age : 21 , name : { first : 'Larsen' , last : 'Shaw'  } },
          {
            isActive : false ,
            age : 9 ,
            name : { first : 'Mini' , last : 'Navarro'  },
            _rowVariant : 'success' 
          },
          { isActive : false , age : 89 , name : { first : 'Geneva' , last : 'Wilson'  } },
          { isActive : true , age : 38 , name : { first : 'Jami' , last : 'Carney'  } },
          { isActive : false , age : 27 , name : { first : 'Essie' , last : 'Dunlap'  } },
          { isActive : true , age : 40 , name : { first : 'Thor' , last : 'Macdonald'  } },
          {
            isActive : true ,
            age : 87 ,
            name : { first : 'Larsen' , last : 'Shaw'  },
            _cellVariants : { age : 'danger' , isActive : 'warning'  }
          },
          { isActive : false , age : 26 , name : { first : 'Mitzi' , last : 'Navarro'  } },
          { isActive : false , age : 22 , name : { first : 'Genevieve' , last : 'Wilson'  } },
          { isActive : true , age : 38 , name : { first : 'John' , last : 'Carney'  } },
          { isActive : false , age : 29 , name : { first : 'Dick' , last : 'Dunlap'  } }
        ],
        fields : [
          { key : 'name' , label : 'Person Full name' , sortable : true , sortDirection : 'desc'  },
          { key : 'age' , label : 'Person age' , sortable : true , class : 'text-center'  },
          {
            key : 'isActive' ,
            label : 'is Active' ,
            formatter : (value, key, item ) =>  {
              return  value ? 'Yes'  : 'No' 
            },
            sortable : true ,
            sortByFormatted : true ,
            filterByFormatted : true 
          },
          { key : 'actions' , label : 'Actions'  }
        ],
        totalRows : 1 ,
        currentPage : 1 ,
        perPage : 5 ,
        pageOptions : [5 , 10 , 15 ],
        sortBy : '' ,
        sortDesc : false ,
        sortDirection : 'asc' ,
        filter : null ,
        filterOn : [],
        infoModal : {
          id : 'info-modal' ,
          title : '' ,
          content : '' 
        }
      }
    },
    computed : {
      sortOptions() {
        
        return  this .fields
          .filter(f  =>f  =>return  { text : f.label, value : f.key }
          })
      }
    },
    mounted() {
      
      this .totalRows = this .items.length
    },
    methods : {
      info(item, index, button) {
        this .infoModal.title = `Row index: ${index} ` 
        this .infoModal.content = JSON .stringify(item, null , 2 )
        this .$root.$emit('bv::show::modal' , this .infoModal.id, button)
      },
      resetInfoModal() {
        this .infoModal.title = '' 
        this .infoModal.content = '' 
      },
      onFiltered(filteredItems) {
        
        this .totalRows = filteredItems.length
        this .currentPage = 1 
      }
    }
  }
 </script > 组件引用 
 属性  
属性 (Click to sort Ascending)  
类型 
默认值 
描述 
 
 
idString 
用于在渲染的内容上设置“id”属性,并用作根据需要生成任何其他元素ID的基础 
 
itemsArray or Function 
[]要显示的项目数组,或项目提供程序功能参考。 有关详细信息,请参阅文档 
 
fieldsArray 
字段名称数组或字段定义对象数组 
 
primary-keyString 
  表字段的名称,每行包含一个保证的唯一值。 需要tbody转换支持,并且还可以加速表格渲染 
 
valueArray 
[]当前显示的行数据 只读 不要为此属性设置值 
 
stripedBoolean 
false将条纹应用于内容行 
 
borderedBoolean 
false为所有单元格和标题添加边框 
 
borderlessBoolean 
false删除单元格的所有边框 
 
outlinedBoolean 
false向表格元素添加轮廓边框 
 
darkBoolean 
false将桌子置于暗模式 
 
hoverBoolean 
false在行上启用悬停样式 
 
smallBoolean 
false用较小的单元格填充表 
 
fixedBoolean 
false
  使所有列均等宽(固定布局表)。 将加快大型表的渲染。 列宽可以通过CSS或colgroup设置 
 
responsiveBoolean or String 
false
  使表格在宽度上响应,并添加水平滚动条。 设置为true表示始终响应,或设置为从响应切换为正常的断点之一:“ sm”,“ md”,“ lg”,“ xl” 
 
no-border-collapse v2.0.0+ Boolean 
false禁用表格边框的折叠。 当表格具有粘性标题或列时很有用 
 
caption-topBoolean 
false可视地将表格标题放在表格上方。 默认值如下。 
 
table-variantString 
将Bootstrap主题颜色变体应用于整个表格 
 
table-classString or Array or Object 
CSS类(或多个类)应用于表元素 
 
stackedBoolean or String 
false
  将表格放在堆叠模式。 为始终堆叠设置为true,或设置为从堆叠切换为正常的断点之一:'sm','md','lg','xl' 
 
head-variantString 
标头变体:“浅”或“暗”,或未设置。 可能优先于行头变量 
 
head-row-variant v2.1.0+ String 
将Bootstrap主题颜色变体应用于thead中的tr元素 
 
thead-classString or Array or Object 
CSS类(适用于thead元素) 
 
thead-tr-classString or Array or Object 
CSS类(一个或多个)应用于thead中的tr元素 
 
tbody-tr-classString or Array or Object or Function 
CSS类(或多个类)应用于tbody中的tr元素。 可以是返回类的函数(有关详细信息,请参阅文档) 
 
tbody-tr-attr v2.2.0+ Object or Function 
要添加到tbody中每个tr的属性,或返回此类属性的函数(有关详细信息,请参阅文档) 
 
details-td-class v2.1.0+ String or Array or Object 
CSS类(或多个类)应用于详细信息行中的td元素 
 
tbody-transition-propsObject 
Vue的“过渡组”属性。 提供时将使tbody成为Vue的“过渡组”组件 
 
tbody-transition-handlersObject 
Vue“过渡组”事件处理程序。 提供时将使tbody成为Vue的“过渡组”组件 
 
tbody-classString or Array or Object 
CSS类(或多个类)应用于tbody元素 
 
filterString or RegExp or Object or Array 
过滤条件。 内部过滤仅支持字符串或RegExpr条件。 
 
filter-functionFunction 
引用要使用的功能,而不是内部过滤功能。 有关详细信息,请参阅文档 
 
filter-ignored-fieldsArray 
过滤项目数据时要忽略的顶级字段数组 
 
filter-included-fieldsArray 
过滤时要包括的字段数组。 覆盖filter-ignore-fields 
 
filter-debounce v2.0.0+  Deprecated Number or String 
0过滤记录之前消除对过滤条件的更改的时间(以毫秒为单位) 
 
  不建议使用“过滤器反跳”属性。 请使用"<b-form-input>"的去抖动功能。
  
 
sort-byString 
当前正在排序的字段名称。 设置为null可清除排序。 可与.sync属性修改器同步 
 
sort-descBoolean 
false设置为true以按降序对列进行排序。 可与.sync属性修改器同步 
 
sort-directionString 
'asc'用于按“ asc”,“ desc”或“ last”对未排序列进行排序的初始排序方向(以使用先前的排序方向) 
 
sort-compareFunction 
对用于对两行数据进行排序比较的函数的引用。 默认为内部排序比较例程。 有关详细信息,请参阅文档 
 
sort-compare-optionsObject 
{'numeric':true}包含“ String.prototype.sortLocale”方法的排序配置的对象。 有关详细信息,请参阅文档 
 
sort-compare-localeString or Array 
在排序时指定语言的语言环境字符串(或语言环境字符串数组)。 有关详细信息,请参阅文档 
 
sort-null-lastBoolean 
false
  排序时,将首先对null和undefined值进行排序(或最后排序,具体取决于'sort-desc')。 设置此属性可以最后对空值排序。 仅适用于内部排序 
 
no-sort-resetBoolean 
false
  当一个表是可排序的时,单击任何不可排序的列标题将清除当前的排序值。 设置此道具以禁用此功能 
 
label-sort-ascString 
'Click to sort Ascending'单击单元格时在标题单元格中放置的隐藏字符串会将排序方向更改为升序 
 
label-sort-descString 
'Click to sort Descending'单击单元格时在标题单元格中放置的隐藏字符串会将排序方向更改为降序 
 
label-sort-clearString 
'Click to clear sorting'单击单元格时隐藏在标题单元格中的字符串将清除当前排序方向 
 
no-local-sortingBoolean 
false禁用内部排序例程,并希望用户提供已排序的项目。 排序控件仍然可用 
 
sort-icon-leftBoolean 
false将排序控件放置在标题文本的左侧。 默认值位于标题文本的右侧 
 
per-pageNumber or String 
0每页显示的行数。 设置为0禁用分页 
 
current-pageNumber or String 
1对表进行分页时要显示的当前页码。 从1开始 
 
captionString 
放置在标题元素中的文本字符串 
 
caption-html Use with caution String 
放置在标题元素中的HTML字符串。 谨慎使用 
 
selectableBoolean 
false设置后,将表主体行置于可选模式 
 
select-modeString 
'multi'设置为“可选”时,表格的可选模式。 可能的值:“单”,“多”或“范围” 
 
selected-variantString 
'active'
  Bootstrap颜色主题变体,用于将选定的行设置为该颜色。 使用任何标准的Bootstrap主题颜色变体,或特殊的表行变体“ active”(默认)。 设置为空字符串不使用变体 
 
no-select-on-click v2.1.0+ Boolean 
false通过点击事件禁用行选择。 行选择将仅以编程方式可用 
 
show-emptyBoolean 
false启用后,没有要显示的项目记录,将显示一条消息,提示没有行显示 
 
empty-textString 
'There are no records to show'当表格中没有要显示的项目时显示的文本字符串 
 
empty-html Use with caution String 
当表格中没有要显示的项目时显示的HTML字符串。 谨慎使用 
 
empty-filtered-textString 
'There are no records matching your request'当表格由于过滤而没有要显示的项目时显示的文本字符串 
 
empty-filtered-html Use with caution String 
当表格由于过滤而没有要显示的项目时显示的HTML字符串。 谨慎使用 
 
busyBoolean 
false设置时,将表强制为繁忙状态。在调用项提供程序功能时自动设置 
 
no-provider-pagingBoolean 
false设置后,使用内部分页对数据进行分页。 否则,项目提供者应执行分页 
 
no-provider-sortingBoolean 
false设置后,使用内部排序对数据进行排序。 否则,项目提供者应执行排序 
 
no-provider-filteringBoolean 
false设置后,使用内部过滤对数据进行分页。 否则,期望提供者执行过滤 
 
api-urlString 
通过道具。 作为上下文对象的一部分传递给项目提供者函数 
 
 
 
警告:  
  当传递原始用户提供的值时,支持HTML字符串(*-html)的道具可能容易
  受到 跨站点脚本(XSS)攻击 。
  您必须先对用户输入进行正确的 清理  !
  
 
 
 插槽  
插槽名称 (Click to sort Ascending)  
描述 
范围 
 
 
cell({key})作用域插槽,用于字段数据的自定义数据呈现。 “ {key}”是字段的键名。 有关范围数据,请参阅文档 
 Scope   
cell()用于字段数据的自定义数据呈现的默认作用域插槽。 有关范围数据,请参阅文档 
 Scope   
head({key})用于自定义呈现字段标题的作用域插槽。 “ {key}”是字段的键名。 有关范围标头,请参见文档 
 Scope   
head()用于自定义呈现字段标题的默认作用域插槽。 有关范围标头,请参见文档 
 Scope   
table-caption在表格的标题元素中显示的内容 
 
table-colgroup放置自定义colgroup和col元素的插槽。 可选范围 
 Scope   
table-busy表处于繁忙状态时用于放置加载消息的可选插槽 
 
row-details作用域插槽,用于可选呈现其他记录详细信息。 请参阅文档以获取行详细信息支持 
 Scope   
empty当“项目”数组中没有项目时显示的内容。 可选范围 
 Scope   
emptyfiltered在过滤后的“项目”数组中不存在任何项目时显示的内容。 可选范围 
 Scope   
thead-top用户提供的带有B-TH / B-TD的B-TR的`thead`元素中列标题上方的插槽。 可选范围。 
 Scope   
top-row用户提供的B-TD单元的固定顶部行插槽。 可选范围 
 Scope   
bottom-row用户提供的B-TD单元的固定底部行插槽。 可选范围 
 Scope   
 
 
 
 事件  
事件 
参数 
描述 
 
 
row-clicked
item - 单击的行的项目数据。 index - 单击的行的索引。 event - 本机事件对象。  单击某行时发出。 
 
row-dblclicked
item - 双击该行的项目数据。 index - 双击行的索引。 event - 本机事件对象。  双击某行时发出。 
 
row-middle-clicked
item - 该行的项目数据被单击中。 index - 该行的索引处于中间单击状态。 event - 本机事件对象。  在单击鼠标中键时发出。 
 
row-hovered
item - 悬停的行的项目数据。 index - 悬停的行的索引。 event - 本机事件对象。  悬停时发出。 
 
row-unhovered
item - 该行的项目数据未悬停。 index - 未悬停的行的索引。 event - 本机事件对象。  当行未悬停时发出。 
 
row-selected
rows - 所选行项目的数组。  在选择或取消选择一个或多个行时触发。 
 
head-clicked
key - 单击列键(字段名称)。 field - 字段定义对象。 event - 本机事件对象。 isFooter - 
  如果事件来自于页脚单元格,则为“ True”  单击页眉或页脚单元格时发出。 不适用于“自定义脚”插槽。 
 
sort-changed
ctx - 表状态上下文对象。 参见文档。  当表格上的排序更改时发出 
 
context-changed
ctx - 表状态上下文对象。 参见文档。  表状态上下文更改时发出 
 
filtered
filteredItems - 
  过滤后的项目数组(在发生本地分页之前)。  当本地过滤导致项目数更改时发出。 
 
refreshed当项目提供程序功能返回数据时发出。 
 
 
 
 
  $root 事件监听器  
 
  您可以通过在$root上发出以下事件来控制<b-table>:
事件 
参数 
描述 
 
 
bv::refresh::tableid 
   - 通过表格ID以刷新数据 
在$ root上发出此事件时刷新特定表格的数据 
 
 
 
 
 
 属性  
属性 (Click to sort Ascending)  
类型 
默认值 
描述 
 
 
idString 
用于在渲染的内容上设置“id”属性,并用作根据需要生成任何其他元素ID的基础 
 
itemsArray 
[]要显示的项目数组 
 
fieldsArray 
字段名称数组或字段定义对象数组 
 
primary-keyString 
  表字段的名称,每行包含一个保证的唯一值。 需要tbody转换支持,并且还可以加速表格渲染 
 
valueArray 
[]当前显示的行数据 只读 不要为此属性设置值 
 
stripedBoolean 
false将条纹应用于内容行 
 
borderedBoolean 
false为所有单元格和标题添加边框 
 
borderlessBoolean 
false删除单元格的所有边框 
 
outlinedBoolean 
false向表格元素添加轮廓边框 
 
darkBoolean 
false将表格置于暗模式 
 
hoverBoolean 
false在行上启用悬停样式 
 
smallBoolean 
false用较小的单元格填充表格 
 
fixedBoolean 
false
  使所有列均等宽(固定布局表)。 将加快大型表的渲染。 列宽可以通过CSS或colgroup设置 
 
responsiveBoolean or String 
false
  使表格在宽度上响应,并添加水平滚动条。 设置为true表示始终响应,或设置为从响应切换为正常的断点之一:“ sm”,“ md”,“ lg”,“ xl” 
 
no-border-collapse v2.0.0+ Boolean 
false禁用表格边框的折叠。 当表格具有粘性标题或列时很有用 
 
caption-topBoolean 
false可视地将表格标题放在表格上方。默认值如下。 
 
table-variantString 
将Bootstrap主题颜色变体应用于整个表格 
 
table-classString or Array or Object 
CSS类(或多个类)应用于表元素 
 
stackedBoolean or String 
false
  将桌子放在堆叠模式。 为始终堆叠设置为true,或设置为从堆叠切换为正常的断点之一:'sm','md','lg','xl' 
 
head-variantString 
标头变体:“浅”或“暗”,或未设置。 可能优先于行头变量 
 
head-row-variant v2.1.0+ String 
将Bootstrap主题颜色变体应用于thead中的tr元素 
 
thead-classString or Array or Object 
CSS类(适用于thead元素) 
 
thead-tr-classString or Array or Object 
CSS类(一个或多个)应用于thead中的tr元素 
 
tbody-tr-classString or Array or Object or Function 
CSS类(或多个类)应用于tbody中的tr元素。 可以是返回类的函数(有关详细信息,请参阅文档) 
 
tbody-tr-attr v2.2.0+ Object or Function 
要添加到tbody中每个tr的属性,或返回此类属性的函数(有关详细信息,请参阅文档) 
 
details-td-class v2.1.0+ String or Array or Object 
CSS类(或多个类)应用于详细信息行中的td元素 
 
tbody-transition-propsObject 
Vue的“过渡组”属性。提供时将使tbody成为Vue的“过渡组”组件 
 
tbody-transition-handlersObject 
Vue“过渡组”事件处理程序。提供时将使tbody成为Vue的“过渡组”组件 
 
tbody-classString or Array or Object 
CSS类(或多个类)应用于tbody元素 
 
captionString 
放置在标题元素中的文本字符串 
 
caption-html Use with caution String 
放置在标题元素中的HTML字符串。谨慎使用 
 
 
 
警告:  
  当传递原始用户提供的值时,支持HTML字符串(*-html)的属性
  可能容易受到 跨站点脚本(XSS)攻击  。 
  您必须先对用户输入进行正确的  清理  !
 
 
 插槽  
插槽名称 (Click to sort Ascending)  
描述 
范围 
 
 
cell({key})作用域插槽,用于字段数据的自定义数据呈现。“{key}”是字段的键名。 
 Scope   
cell()用于字段数据的自定义数据呈现的默认作用域插槽。 
 Scope   
head({key})用于自定义呈现字段标题的作用域插槽。“{key}”是字段的键名 
 Scope   
head()用于自定义呈现字段标题的默认作用域插槽。 
 Scope   
table-caption在表格的标题元素中显示的内容 
 
table-colgroup放置自定义colgroup和col元素的插槽。可选范围 
 Scope   
row-details作用域插槽,用于可选呈现其他记录详细信息。请参阅文档以获取行详细信息支持 
 Scope   
thead-top用户提供的带有B-TH/B-TD的B-TR的`thead`元素中列标题上方的插槽。可选范围。 
 Scope   
 
 
 
 事件  
事件 
参数 
描述 
 
 
row-clicked
item - 单击的行的项目数据。 index - 单击的行的索引。 event - 本机事件对象。  单击某行时发出。 
 
row-dblclicked
item - 双击该行的项目数据。 index - 双击行的索引。 event - 本机事件对象。  双击某行时发出。 
 
row-middle-clicked
item - 该行的项目数据被单击中。 index - 该行的索引处于中间单击状态。 event - 本机事件对象。  在单击鼠标中键时发出。 
 
row-hovered
item - 悬停的行的项目数据。 index - 悬停的行的索引。 event - 本机事件对象。  悬停时发出。 
 
row-unhovered
item - 该行的项目数据未悬停。 index - 未悬停的行的索引。 event - 本机事件对象。  当行未悬停时发出。 
 
head-clicked
key - 单击列键(字段名称)。 field - 字段定义对象。 event - 本机事件对象。 isFooter - 
  如果事件来自于页脚单元格,则为“ True”  单击页眉或页脚单元格时发出。 不适用于“自定义脚”插槽。 
 
 
 
 
 
 Properties  
属性 (Click to sort Ascending)  
类型 
默认值 
描述 
 
 
idString 
用于在渲染的内容上设置“id”属性,并用作根据需要生成任何其他元素ID的基础 
 
stripedBoolean 
false将条纹应用于内容行 
 
borderedBoolean 
false为所有单元格和标题添加边框 
 
borderlessBoolean 
false删除单元格的所有边框 
 
outlinedBoolean 
false向表格元素添加轮廓边框 
 
darkBoolean 
false将表格置于暗模式 
 
hoverBoolean 
false在行上启用悬停样式 
 
smallBoolean 
false用较小的单元格填充表 
 
fixedBoolean 
false
  使所有列均等宽(固定布局表)。 将加快大型表的渲染。 列宽可以通过CSS或colgroup设置 
 
responsiveBoolean or String 
false
  使表格在宽度上响应,并添加水平滚动条。 设置为true表示始终响应,或设置为从响应切换为正常的断点之一:“ sm”,“ md”,“ lg”,“ xl” 
 
no-border-collapse v2.0.0+ Boolean 
false禁用表格边框的折叠。 当表格具有粘性标题或列时很有用 
 
caption-topBoolean 
false可视地将表格标题放在表格上方。 默认值如下。 
 
table-variantString 
将Bootstrap主题颜色变体应用于整个表格 
 
table-classString or Array or Object 
CSS类(或多个类)应用于表元素 
 
stackedBoolean or String 
false
  将桌子放在堆叠模式。 为始终堆叠设置为true,或设置为从堆叠切换为正常的断点之一:'sm','md','lg','xl' 
 
 
 
 
 
 Properties  
属性 
类型 
默认值 
描述 
 
 
tbody-transition-propsObject 
Vue的“过渡组”属性。提供时将使tbody成为Vue的“过渡组”组件 
 
tbody-transition-handlersObject 
Vue“过渡组”事件处理程序。提供时将使tbody成为Vue的“过渡组”组件 
 
 
 
 
 
 Properties  
属性 
类型 
默认值 
描述 
 
 
head-variantString 
标头变体:“浅”或“暗”,或未设置 
 
 
 
 
 
 Properties  
属性 
类型 
默认值 
描述 
 
 
variantString 
将Bootstrap主题颜色变体之一应用于组件 
 
 
 
 
 
 Properties  
属性 
类型 
默认值 
描述 
 
 
variantString 
将Bootstrap主题颜色变体之一应用于组件 
 
colspanNumber or String 
该单元格跨越的列数 
 
rowspanNumber or String 
该单元格跨越的行数 
 
stacked-headingString 
在堆叠模式下前往单元格。 仅适用于“ tbody”元素中的单元格 
 
sticky-columnBoolean 
false如果这将是粘性列。 必须在此列的所有单元格上进行设置。 表格必须处于粘页眉或响应模式下才能工作 
 
 
 
 
 
 Properties  
属性 
类型 
默认值 
描述 
 
 
variantString 
将Bootstrap主题颜色变体之一应用于组件 
 
colspanNumber or String 
该单元格跨越的列数 
 
rowspanNumber or String 
该单元格跨越的行数 
 
stacked-headingString 
在堆叠模式下前往单元格。 仅适用于“ tbody”元素中的单元格 
 
sticky-columnBoolean 
false如果这将是粘性列。 必须在此列的所有单元格上进行设置。 表格必须处于粘页眉或响应模式下才能工作 
 
 
 
 
 导入单个组件   您可以通过以下命名的导出将单个组件导入到项目中: 
组件 
命名输出 
导入路径 
 
 
<b-table>BTablebootstrap-vue 
<b-table-lite>BTableLitebootstrap-vue 
<b-table-simple>BTableSimplebootstrap-vue 
<b-tbody>BTbodybootstrap-vue 
<b-thead>BTheadbootstrap-vue 
<b-tfoot>BTfootbootstrap-vue 
<b-tr>BTrbootstrap-vue 
<b-td>BTdbootstrap-vue 
<b-th>BThbootstrap-vue 
 
 
示例: 
import  { BTable } from  'bootstrap-vue' 
Vue.component('b-table' , BTable)
 导入为Vue.js插件   该插件包括上面列出的所有单个组件。插件还包括任何组件别名。 
命名输出 
导入路径 
 
 
TablePluginbootstrap-vue 
 
 
该插件还自动包括以下插件:
TableLitePluginTableSimplePlugin 
示例: 
import  { TablePlugin } from  'bootstrap-vue' 
Vue.use(TablePlugin)