双端兼容 · 桌面 + 移动
Tabs 标签页
以标签方式组织同层级内容区块:tab-pane 注册式声明,标题栏自动生成跟随激活项的指示条,支持 card / border-card 风格、四向标签位置、动态增删与懒渲染,v-model 双向绑定当前激活项。容器宽度不足时(移动端、窄侧栏)页签自动进入横向滚动,激活项始终滚入可视区,见 移动端 · 页面导航。
基础用法
未传 v-model 时默认激活第一个 pane;name 缺省时以 label 作为标识;pane 设 disabled 后标签不可点击。
v-model 绑定与程序切换
v-model 绑定当前激活 pane 的 name,点击与外部改写双向同步,外部赋值即可程序化切换标签。
用户管理内容
当前激活:user
卡片风格
type 为 'card' 时标签呈卡片拼接,'border-card' 时整体渲染为带边框底色的卡片。
标签位置
tab-position 支持 top / right / bottom / left,指示条方向自适应。
动态增删标签
pane 设 closable 显示关闭图标,点击触发 tab-remove(参数为 pane 对象,含 paneName)并从组件内注销,需在回调中同步移除数据源;配合按钮追加数据实现新增。根组件设 editable 后不渲染关闭图标,用于纯新增场景。
订单内容
懒渲染
lazy(根级或单 pane 级)开启后,内容延迟到首次激活才渲染,适合图表等开销大的面板;渲染过即保持挂载,切回不重复初始化。
API
Tabs Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| v-model | 当前激活 pane 的 name | string | number | |
| type | 风格类型,空字符串为默认线条风格 | card | border-card | |
| tab-position | 标签位置 | top | right | bottom | left | top |
| closable | 声明于根组件,未级联至子项(以 pane 的 closable 为准) | boolean | false |
| editable | 编辑态,为 true 时不渲染关闭图标 | boolean | false |
| lazy | 全局懒渲染(激活过才渲染内容) | boolean | false |
TabPane Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| label | 标签标题(name 缺省时兼作标识) | string | |
| name | 标识,对应 v-model 的值 | string | number | |
| disabled | 禁用 | boolean | false |
| closable | 显示关闭图标,点击触发 tab-remove 并注销该 pane | boolean | false |
| lazy | 当前项懒渲染(优先于根级 lazy) | boolean | false |
Tabs Events
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| update:model-value | 激活项变化时同步 v-model | (name) => void | — |
| tab-click | 标签被点击(禁用项不触发) | (pane) => void | — |
| tab-change | 激活项变化 | (name) => void | — |
| tab-remove | 关闭标签(先于注销,需同步移除数据源) | (pane) => void | — |
| edit | 编辑动作(当前仅 remove) | (name, action) => void | — |
Slots
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| default(Tabs) | tab-pane 列表 | — | — |
| label(TabPane) | 自定义标签标题(替代 label 文本) | — | — |
| default(TabPane) | 标签页内容 | — | — |
Tabs Methods
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| currentName | 当前激活项标识(ref) | Ref<string | number> | — |
| activeTab | 当前激活项标识(兼容别名,同 currentName) | ComputedRef<string | number> | — |