Tabs 标签页组件 #

基本用法 #

jsx
import { Tabs, TabList, TabPanels, Tab, TabPanel } from '@chakra-ui/react'

function Example() {
  return (
    <Tabs>
      <TabList>
        <Tab>标签一</Tab>
        <Tab>标签二</Tab>
        <Tab>标签三</Tab>
      </TabList>

      <TabPanels>
        <TabPanel>
          <p>标签一内容</p>
        </TabPanel>
        <TabPanel>
          <p>标签二内容</p>
        </TabPanel>
        <TabPanel>
          <p>标签三内容</p>
        </TabPanel>
      </TabPanels>
    </Tabs>
  )
}

标签页变体 #

jsx
<Tabs variant="line">线条变体</Tabs>
<Tabs variant="enclosed">封闭变体</Tabs>
<Tabs variant="enclosed-colored">彩色封闭变体</Tabs>
<Tabs variant="soft-rounded">圆角柔和变体</Tabs>
<Tabs variant="solid-rounded">圆角实心变体</Tabs>
<Tabs variant="unstyled">无样式变体</Tabs>

标签页颜色 #

jsx
<Tabs colorScheme="green">
  {/* 内容 */}
</Tabs>

<Tabs colorScheme="red">
  {/* 内容 */}
</Tabs>

标签页位置 #

jsx
<Tabs orientation="vertical">
  {/* 垂直标签页 */}
</Tabs>

<Tabs isFitted>
  {/* 自适应宽度 */}
</Tabs>

受控标签页 #

jsx
function ControlledTabs() {
  const [tabIndex, setTabIndex] = useState(0)

  return (
    <Tabs index={tabIndex} onChange={setTabIndex}>
      <TabList>
        <Tab>标签一</Tab>
        <Tab>标签二</Tab>
      </TabList>
      <TabPanels>
        <TabPanel>内容一</TabPanel>
        <TabPanel>内容二</TabPanel>
      </TabPanels>
    </Tabs>
  )
}

实用示例 #

设置页面 #

jsx
function SettingsTabs() {
  return (
    <Tabs variant="enclosed" colorScheme="blue">
      <TabList>
        <Tab>个人信息</Tab>
        <Tab>安全设置</Tab>
        <Tab>通知设置</Tab>
        <Tab>隐私设置</Tab>
      </TabList>

      <TabPanels>
        <TabPanel>
          <VStack spacing={4}>
            <FormControl>
              <FormLabel>用户名</FormLabel>
              <Input />
            </FormControl>
            <FormControl>
              <FormLabel>邮箱</FormLabel>
              <Input type="email" />
            </FormControl>
          </VStack>
        </TabPanel>
        <TabPanel>
          <VStack spacing={4}>
            <FormControl>
              <FormLabel>当前密码</FormLabel>
              <Input type="password" />
            </FormControl>
            <FormControl>
              <FormLabel>新密码</FormLabel>
              <Input type="password" />
            </FormControl>
          </VStack>
        </TabPanel>
        <TabPanel>通知设置内容</TabPanel>
        <TabPanel>隐私设置内容</TabPanel>
      </TabPanels>
    </Tabs>
  )
}

Tabs 属性速查表 #

属性 说明
variant 变体 line, enclosed, soft-rounded…
colorScheme 颜色方案 blue, green, red…
orientation 方向 horizontal, vertical
isFitted 自适应宽度 boolean
index 当前索引 number

下一步 #

现在你已经掌握了 Tabs 组件,接下来学习 Breadcrumb 面包屑,了解如何使用面包屑导航!

最后更新:2026-03-28