Tabs.tsx

Tabs.tsx

基本信息

  • 类型: React 组件 (shadcn/ui)
  • 路径: ./src/components/ui/tabs.tsx

功能描述

标签页组件,用于在内容区域之间切换。基于 Radix UI,支持键盘导航和动画效果。

导出内容

  • Tabs - 标签页根组件
  • TabsList - 标签列表
  • TabsTrigger - 标签触发器
  • TabsContent - 标签内容

Props 接口

Tabs

属性类型必填默认值说明
valuestring否-当前选中值(受控)
defaultValuestring否-默认选中值
onValueChange(value: string) => void否-值变化回调
classNamestring否-自定义CSS类名
...propsReact.ComponentProps<typeof TabsPrimitive.Root>否-Radix Tabs 属性

TabsList

属性类型必填默认值说明
classNamestring否-自定义CSS类名
...propsReact.ComponentProps<typeof TabsPrimitive.List>否-List属性

TabsTrigger

属性类型必填默认值说明
valuestring是-标签值
classNamestring否-自定义CSS类名
...propsReact.ComponentProps<typeof TabsPrimitive.Trigger>否-Trigger属性

TabsContent

属性类型必填默认值说明
valuestring是-对应标签值
classNamestring否-自定义CSS类名
...propsReact.ComponentProps<typeof TabsPrimitive.Content>否-Content属性

依赖

  • @radix-ui/react-tabs - Radix UI 标签页原语
  • @/lib/utils - 工具函数 (cn)

使用示例

import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";

// 基础用法
<Tabs defaultValue="account" className="w-[400px]">
  <TabsList>
    <TabsTrigger value="account">账户</TabsTrigger>
    <TabsTrigger value="password">密码</TabsTrigger>
  </TabsList>
  <TabsContent value="account">
    <p>账户设置内容</p>
  </TabsContent>
  <TabsContent value="password">
    <p>密码更改内容</p>
  </TabsContent>
</Tabs>

// 受控模式
const [activeTab, setActiveTab] = useState("photos");
<Tabs value={activeTab} onValueChange={setActiveTab}>
  <TabsList>
    <TabsTrigger value="photos">照片</TabsTrigger>
    <TabsTrigger value="videos">视频</TabsTrigger>
  </TabsList>
  <TabsContent value="photos">照片内容</TabsContent>
  <TabsContent value="videos">视频内容</TabsContent>
</Tabs>
← 返回目录