有时,最好只在激活选项卡时加载组件和数据,而不是在呈现
<b-tabs>
集时加载所有选项卡(和相关数据)。
单个
<b-tab>
组件可以通过
lazy
prop延迟加载,
当设置时,它在激活(如图所示)之前不会装载
<b-tab>
的内容,并且在禁用(隐藏)选项卡时将卸载:
<b-tabs content-class="mt-3">
<b-tab title="Regular tab"><b-alert show>I'm always mounted</b-alert></b-tab>
<b-tab title="Lazy tab" lazy><b-alert show>I'm lazy mounted!</b-alert></b-tab>
</b-tabs>
通过在父
<b-tabs>
组件上设置
lazy
prop,还可以使所有tab变延迟:
<b-tabs content-class="mt-3" lazy>
<b-tab title="Tab 1"><b-alert show>I'm lazy mounted!</b-alert></b-tab>
<b-tab title="Tab 2"><b-alert show>I'm lazy mounted too!</b-alert></b-tab>
</b-tabs>
默认情况下,如果选项卡按钮具有焦点,则会启用键盘导航,以使ARIA符合tablists。
每个
<b-tab>
实例还提供两个激活或停用选项卡的公共方法。
方法分别是
.activate()
和
.deactivate()
。
如果激活或停用失败(即某个选项卡被禁用或没有可将激活移动到的选项卡),则当前活动的选项卡将保持活动状态,该方法将返回
false
。
您需要引用
<b-tab>
才能使用这些方法。
防止
<b-tab>
被激活
要防止选项卡激活,只需在
<b-tab>
组件上设置
disabled
的属性。
或者,您可以侦听
activate-tab
事件,该事件提供了一个选项来阻止选项卡激活。
activate-tab
事件由三个参数发出:
newTabIndex
: 将要激活的选项卡的索引
prevTabIndex
: 当前活动选项卡的索引