Skip to content

Tabs 标签页

用于分隔和切换同一层级的内容区域。Tabs 适合在有限空间内承载多组内容,通过点击不同标签页进行切换。

基础用法

最常见的用法,通过 v-model 绑定当前激活的标签名,并使用 c-tab-pane 作为子项。


风格类型

通过 type 属性切换不同的样式风格,支持 line(默认)、slidercard 三种类型。

Slider 风格

Card 风格

Line 风格(带指示条)

提示:可通过 show-indicator 属性控制是否显示底部主题色指示条。


标签位置

使用 tab-position 设置标签页位置,支持 toprightbottomleft 四个方向。

提示:纵向标签页(left/right)完全支持所有风格类型(line、slider、card)。


等宽拉伸

使用 stretch 属性让标签均分宽度,适合移动端或需要等宽显示的场景。


可编辑标签

开启 editableclosable 支持动态新增和删除标签。


受控切换

通过 before-leave 钩子函数可以在切换前进行拦截。


自定义标签内容

使用 #label 插槽可以自定义标签内容,支持图标、徽章等。


API

CTabs Props

属性名说明类型可选值默认值
modelValue当前激活的标签名string | number第一个 pane 的 name
type标签样式类型'line' | 'slider' | 'card'line / slider / cardline
tabPosition标签位置'top' | 'right' | 'bottom' | 'left'top / right / bottom / lefttop
showIndicator是否显示底部指示条(仅 line 风格)booleantrue
stretch标签等宽拉伸booleanfalse
editable是否可新增标签booleanfalse
closable是否显示关闭按钮booleanfalse
beforeLeave切换前钩子,返回 boolean | Promise<boolean>(newName, oldName) => boolean | Promise<boolean>

CTabs Events

事件名说明回调参数
update:modelValue激活标签改变(name: string | number) => void
tab-click点击标签时触发(pane: { name: string | number, label: string }) => void
tab-add点击新增按钮触发() => void
tab-remove点击关闭按钮触发(name: string | number) => void

CTabs Slots

插槽名说明
默认放置多个 c-tab-pane

CTabPane Props

属性名说明类型默认值
label标签文本string
name标签唯一标识(必填)string | number
disabled是否禁用booleanfalse
closable是否显示关闭按钮(覆盖 c-tabsclosablebooleanundefined

CTabPane Slots

插槽名说明
默认标签页内容
label自定义标签内容