2016-03-31 14:17:09 +08:00
|
|
|
|
---
|
|
|
|
|
category: Components
|
2022-11-09 12:28:04 +08:00
|
|
|
|
group: 数据展示
|
2016-09-21 11:28:38 +08:00
|
|
|
|
title: Tabs
|
2024-03-22 14:22:42 +08:00
|
|
|
|
subtitle: 标签页
|
|
|
|
|
description: 选项卡切换组件。
|
2022-11-30 20:14:41 +08:00
|
|
|
|
cover: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*72NDQqXkyOEAAAAAAAAAAAAADrJ8AQ/original
|
2023-02-09 22:17:31 +08:00
|
|
|
|
coverDark: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*8HMoTZUoSGoAAAAAAAAAAAAADrJ8AQ/original
|
2016-03-31 14:17:09 +08:00
|
|
|
|
---
|
2015-05-27 15:43:29 +08:00
|
|
|
|
|
2015-06-14 17:54:08 +08:00
|
|
|
|
## 何时使用
|
|
|
|
|
|
|
|
|
|
提供平级的区域将大块内容进行收纳和展现,保持界面整洁。
|
|
|
|
|
|
2015-12-17 12:36:10 +08:00
|
|
|
|
Ant Design 依次提供了三级选项卡,分别用于不同的场景。
|
2015-12-15 17:30:06 +08:00
|
|
|
|
|
2015-12-17 12:36:10 +08:00
|
|
|
|
- 卡片式的页签,提供可关闭的样式,常用于容器顶部。
|
2020-01-17 10:48:25 +08:00
|
|
|
|
- 既可用于容器顶部,也可用于容器内部,是最通用的 Tabs。
|
2024-07-23 22:22:24 +08:00
|
|
|
|
- [Radio.Button](/components/radio-cn/#radio-demo-radiobutton) 可作为更次级的页签来使用。
|
2015-06-14 17:54:08 +08:00
|
|
|
|
|
2022-11-09 12:28:04 +08:00
|
|
|
|
## 代码演示
|
|
|
|
|
|
2022-11-17 18:28:13 +08:00
|
|
|
|
<!-- prettier-ignore -->
|
2022-11-09 12:28:04 +08:00
|
|
|
|
<code src="./demo/basic.tsx">基本</code>
|
|
|
|
|
<code src="./demo/disabled.tsx">禁用</code>
|
|
|
|
|
<code src="./demo/centered.tsx">居中</code>
|
|
|
|
|
<code src="./demo/icon.tsx">图标</code>
|
2023-08-30 21:28:45 +08:00
|
|
|
|
<code src="./demo/custom-indicator.tsx">指示条</code>
|
2022-11-09 12:28:04 +08:00
|
|
|
|
<code src="./demo/slide.tsx">滑动</code>
|
|
|
|
|
<code src="./demo/extra.tsx">附加内容</code>
|
|
|
|
|
<code src="./demo/size.tsx">大小</code>
|
|
|
|
|
<code src="./demo/position.tsx">位置</code>
|
|
|
|
|
<code src="./demo/card.tsx">卡片式页签</code>
|
|
|
|
|
<code src="./demo/editable-card.tsx">新增和关闭页签</code>
|
2023-01-05 15:30:59 +08:00
|
|
|
|
<code src="./demo/card-top.tsx" compact background="grey" debug>卡片式页签容器</code>
|
2022-11-09 12:28:04 +08:00
|
|
|
|
<code src="./demo/custom-add-trigger.tsx">自定义新增页签触发器</code>
|
|
|
|
|
<code src="./demo/custom-tab-bar.tsx">自定义页签头</code>
|
|
|
|
|
<code src="./demo/custom-tab-bar-node.tsx">可拖拽标签</code>
|
|
|
|
|
<code src="./demo/animated.tsx" debug>动画</code>
|
|
|
|
|
<code src="./demo/nest.tsx" debug>嵌套</code>
|
2023-06-02 01:27:30 +08:00
|
|
|
|
<code src="./demo/component-token.tsx" debug>组件 Token</code>
|
2022-11-09 12:28:04 +08:00
|
|
|
|
|
2015-06-09 18:17:20 +08:00
|
|
|
|
## API
|
2015-05-27 15:43:29 +08:00
|
|
|
|
|
2023-08-08 18:27:48 +08:00
|
|
|
|
通用属性参考:[通用属性](/docs/react/common-props)
|
|
|
|
|
|
2015-06-15 19:56:58 +08:00
|
|
|
|
### Tabs
|
2015-05-27 15:43:29 +08:00
|
|
|
|
|
2022-11-17 18:28:13 +08:00
|
|
|
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
|
|
|
| --- | --- | --- | --- | --- |
|
|
|
|
|
| activeKey | 当前激活 tab 面板的 key | string | - | |
|
2024-02-07 11:23:57 +08:00
|
|
|
|
| addIcon | 自定义添加按钮,设置 `type="editable-card"` 时有效 | ReactNode | `<PlusOutlined />` | 4.4.0 |
|
2023-08-21 10:03:48 +08:00
|
|
|
|
| animated | 是否使用动画切换 Tabs | boolean\| { inkBar: boolean, tabPane: boolean } | { inkBar: true, tabPane: false } | |
|
2022-11-17 18:28:13 +08:00
|
|
|
|
| centered | 标签居中展示 | boolean | false | 4.4.0 |
|
2024-04-05 11:04:03 +08:00
|
|
|
|
| defaultActiveKey | 初始化选中面板的 key,如果没有设置 activeKey | string | `第一个面板的 key` | |
|
2022-11-17 18:28:13 +08:00
|
|
|
|
| hideAdd | 是否隐藏加号图标,在 `type="editable-card"` 时有效 | boolean | false | |
|
2024-01-05 10:56:11 +08:00
|
|
|
|
| indicator | 自定义指示条的长度和对齐方式 | { size?: number \| (origin: number) => number; align: `start` \| `center` \| `end`; } | - | 5.13.0 |
|
2022-12-22 14:12:26 +08:00
|
|
|
|
| items | 配置选项卡内容 | [TabItemType](#tabitemtype) | [] | 4.23.0 |
|
2024-07-20 16:32:47 +08:00
|
|
|
|
| more | 自定义折叠菜单属性 | [MoreProps](#moreprops) | { icon: `<EllipsisOutlined />` , trigger: 'hover' } | |
|
2024-02-07 11:23:57 +08:00
|
|
|
|
| removeIcon | 自定义删除按钮,设置 `type="editable-card"` 时有效 | ReactNode | `<CloseOutlined />` | 5.15.0 |
|
2022-11-17 18:28:13 +08:00
|
|
|
|
| popupClassName | 更多菜单的 `className` | string | - | 4.21.0 |
|
|
|
|
|
| renderTabBar | 替换 TabBar,用于二次封装标签头 | (props: DefaultTabBarProps, DefaultTabBar: React.ComponentClass) => React.ReactElement | - | |
|
|
|
|
|
| size | 大小,提供 `large` `middle` 和 `small` 三种大小 | string | `middle` | |
|
|
|
|
|
| tabBarExtraContent | tab bar 上额外的元素 | ReactNode \| {left?: ReactNode, right?: ReactNode} | - | object: 4.6.0 |
|
|
|
|
|
| tabBarGutter | tabs 之间的间隙 | number | - | |
|
|
|
|
|
| tabBarStyle | tab bar 的样式对象 | CSSProperties | - | |
|
|
|
|
|
| tabPosition | 页签位置,可选值有 `top` `right` `bottom` `left` | string | `top` | |
|
|
|
|
|
| destroyInactiveTabPane | 被隐藏时是否销毁 DOM 结构 | boolean | false | |
|
|
|
|
|
| type | 页签的基本样式,可选 `line`、`card` `editable-card` 类型 | string | `line` | |
|
2024-02-01 10:36:21 +08:00
|
|
|
|
| onChange | 切换面板的回调 | (activeKey: string) => void | - | |
|
|
|
|
|
| onEdit | 新增和删除页签的回调,在 `type="editable-card"` 时有效 | (action === 'add' ? event : targetKey, action) => void | - | |
|
|
|
|
|
| onTabClick | tab 被点击的回调 | (key: string, event: MouseEvent) => void | - | |
|
|
|
|
|
| onTabScroll | tab 滚动时触发 | ({ direction: `left` \| `right` \| `top` \| `bottom` }) => void | - | 4.3.0 |
|
2015-05-27 15:43:29 +08:00
|
|
|
|
|
2022-07-21 18:45:48 +08:00
|
|
|
|
> 更多属性查看 [rc-tabs tabs](https://github.com/react-component/tabs#tabs)
|
|
|
|
|
|
2022-10-03 22:27:26 +08:00
|
|
|
|
### TabItemType
|
2015-05-27 15:43:29 +08:00
|
|
|
|
|
2023-10-17 10:50:12 +08:00
|
|
|
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
2023-10-16 13:40:47 +08:00
|
|
|
|
| --- | --- | --- | --- | --- |
|
2024-02-01 10:36:21 +08:00
|
|
|
|
| closeIcon | 自定义关闭图标,在 `type="editable-card"` 时有效。5.7.0:设置为 `null` 或 `false` 时隐藏关闭按钮 | ReactNode | - | |
|
2023-10-16 13:40:47 +08:00
|
|
|
|
| destroyInactiveTabPane | 被隐藏时是否销毁 DOM 结构 | boolean | false | 5.11.0 |
|
2023-10-17 10:50:12 +08:00
|
|
|
|
| disabled | 禁用某一项 | boolean | false | |
|
|
|
|
|
| forceRender | 被隐藏时是否渲染 DOM 结构 | boolean | false | |
|
|
|
|
|
| key | 对应 activeKey | string | - | |
|
|
|
|
|
| label | 选项卡头显示文字 | ReactNode | - | |
|
2023-11-28 11:49:10 +08:00
|
|
|
|
| icon | 选项卡头显示图标 | ReactNode | - | 5.12.0 |
|
2023-10-17 10:50:12 +08:00
|
|
|
|
| children | 选项卡头显示内容 | ReactNode | - | |
|
2023-11-14 19:40:37 +08:00
|
|
|
|
| closable | 是否显示选项卡的关闭按钮,在 `type="editable-card"` 时有效 | boolean | true | |
|
2023-04-11 10:25:24 +08:00
|
|
|
|
|
2024-04-17 12:05:43 +08:00
|
|
|
|
### MoreProps
|
|
|
|
|
|
2024-06-22 21:59:12 +08:00
|
|
|
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
|
|
|
| -------------------------------------------- | -------------- | --------- | ------ | ---- |
|
|
|
|
|
| icon | 自定义折叠图标 | ReactNode | - | |
|
|
|
|
|
| [DropdownProps](/components/dropdown-cn#api) | | | | |
|
2024-04-17 12:05:43 +08:00
|
|
|
|
|
2023-08-30 23:02:35 +08:00
|
|
|
|
## 主题变量(Design Token)
|
2023-04-11 10:25:24 +08:00
|
|
|
|
|
|
|
|
|
<ComponentTokenTable component="Tabs"></ComponentTokenTable>
|