Tabs
标签页,基于 reka-ui 封装并完整转发 props/emits。Tabs 是 TabsRoot 的别名。
Anatomy
Tabs标签页根 (TabsRoot 别名),承载 modelValue / orientation 等状态TabsList标签容器,默认样式 flex items-center justify-centerTabsTrigger单个标签触发器,必须传 valueTabsContent与 Trigger 按 value 配对的面板
激活态样式
TabsTrigger 和 TabsContent 会自动带 data-state="active" | "inactive",可用 UnoCSS 写法如 data-[state=active]:bg-white data-[state=active]:text-black 自定义高亮。
基本用法
受控切换
通过 v-model 绑定当前 tab。
概览面板内容
非受控默认值
defaultValue
首次渲染的激活项。
A 的内容
禁用某个 Tab
disabled trigger
A
API
Tabs Props
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
modelValue | string | — | 受控激活值 |
defaultValue | string | — | 非受控初始值 |
orientation | 'horizontal' | 'vertical' | 'horizontal' | 排列方向 |
activationMode | 'automatic' | 'manual' | 'automatic' | 键盘聚焦时是否立即切换 |
其余 props 透传至 reka-ui TabsRootProps。
Tabs Events
| 事件 | Payload | 说明 |
|---|---|---|
update:modelValue | (value: string) | 激活值变化 |
TabsList Props
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
class | string | — | 容器额外 class;默认含 flex items-center justify-center |
其余 props 透传至 reka-ui TabsListProps。
TabsTrigger Props
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
value | string | — | 与 TabsContent 配对的值(必填) |
disabled | boolean | — | 禁用此标签 |
class | string | — | 触发器 class |
TabsContent Props
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
value | string | — | 对应 Trigger 的值(必填) |
class | string | — | 面板 class |
Slots
| 插槽 | 作用域 | 说明 |
|---|---|---|
default (Tabs) | — | 通常放 TabsList + 多个 TabsContent |
default (TabsList) | — | 若干 TabsTrigger |
default (TabsTrigger) | — | 标签内容(文字 / 图标) |
default (TabsContent) | — | 面板内容 |
可访问性
- 基于 reka-ui,
TabsList带role="tablist",TabsTrigger带role="tab"、aria-selected、data-state - 支持 Left/Right(或 Up/Down)、Home/End 的原生键盘导航
TabsContent带role="tabpanel"并与对应触发器通过aria-controls关联activationMode="manual"可在需要延迟加载的场景下按 Enter 再切换