Skip to content

Tabs ​

标签页,基于 reka-ui 封装并完整转发 props/emits。Tabs 是 TabsRoot 的别名。

Anatomy ​

  • Tabs标签页根 (TabsRoot 别名),承载 modelValue / orientation 等状态
    • TabsList标签容器,默认样式 flex items-center justify-center
    • TabsTrigger单个标签触发器,必须传 value
    • TabsContent与 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 ​

名称 类型 默认值 说明
modelValuestring—受控激活值
defaultValuestring—非受控初始值
orientation'horizontal' | 'vertical''horizontal'排列方向
activationMode'automatic' | 'manual''automatic'键盘聚焦时是否立即切换

其余 props 透传至 reka-ui TabsRootProps。

Tabs Events ​

事件 Payload 说明
update:modelValue(value: string)激活值变化

TabsList Props ​

名称 类型 默认值 说明
classstring—容器额外 class;默认含 flex items-center justify-center

其余 props 透传至 reka-ui TabsListProps。

TabsTrigger Props ​

名称 类型 默认值 说明
valuestring—与 TabsContent 配对的值(必填)
disabledboolean—禁用此标签
classstring—触发器 class

TabsContent Props ​

名称 类型 默认值 说明
valuestring—对应 Trigger 的值(必填)
classstring—面板 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 再切换

基于 MIT 协议发布(内部使用)