Skip to content
目录

Tabs 选项卡

Tabs 选项卡切换组件,分隔展示不同类型的数据。

基础用法

简单的切换展示。

TIP

您必须为 vi-tabs 指定一个 active 属性,它用于指定当前展示的 tab,与 vi-tabname 属性对应。所以您也必须为 vi-tab 指定 labelname 属性,前者用于渲染 tab 的头部,后者作为唯一标识符。

Vue,渐进式 JavaScript 框架

不同类型

切换不同类型的 Tabs, 目前仅支持: 'normal''inner-card'

Vue,渐进式 JavaScript 框架
React,用于构建用户界面的 JavaScript 库

动态切换

通过动态的 active 属性,来切换当前展示的 tab。如下所示:


Vue,渐进式 JavaScript 框架

ifMode

类似 Vue v-ifv-show 的区别,为了性能考虑,此模式默认为 false。如果您有需要,可以开启,开启后只有高亮的 Tab 会被渲染,其他 Tab 将被销毁!

TIP

您可以打开“开发者工具”,并在 Elements 面板中来查看节点的渲染情况。如果您熟悉 Vue v-ifv-show 指令的区别,相信您立马就能理解!

Vue,渐进式 JavaScript 框架

可被移除

使用 removable 属性,设置选项卡可被移除。点击移除按钮后触发 tab-remove 事件。

WARNING

请注意!移除按钮仅触发 tab-remove 事件并传入相应参数,您需要自己编写移除逻辑。因为 Violet 并不知道您的数据结构,而如果操作 DOM 的话,效率会非常低!同样的,移除后当前 Tab 也需要您手动更新,因为 Violet 同样不知道您的更新后的数据!

Vue,渐进式 JavaScript 框架

阻止切换

使用 before-change 钩子,此钩子函数返回 true 则正常切换,返回 false 则阻止切换。

TIP

此示例中使用 before-change 阻止了切换到 React,所以您无法切换到 React

WARNING

注意:before-change 虽然会阻止切换,但被点击的选项卡仍能触发 tab-click 事件。

Vue,渐进式 JavaScript 框架

APIs

Tabs 属性

属性名说明类型默认值是必需项
v-model当前展示的选项卡string——true
type选项卡类型'normal' | 'inner-card'——false
active-bg-color当前展示的选项卡的背景颜色string'#802ae8'false
bg-color标题背景颜色string#eeeeeefalse
ifMode是否为类似 v-if 的模式booleanfalsefalse
removable是否可被移除booleanfalsefalse
before-change选项卡切换前触发,返回 false 则阻止切换(name: string) => boolean——false
padding'normal' 类型的 paddingstring'6px'false
bar-height高亮状态条高度(仅 'normal' 模式可用)string'2px'false
center居中选项卡booleanfalsefalse
bar-half使用一半宽度的高亮状态条(仅 'normal' 模式可用)booleanfalsefalse

Tabs 事件

事件名触发时机参数
tab-click选项卡标题被点击时触发(name: string, e: MouseEvent): void
tab-remove点击移除按钮触发(name: string, e: MouseEvent): void
changev-model 值改变后触发(newVal: string, oldVal: string): void

Tab 属性

属性名说明类型默认值
label选项卡 标题string——
name唯一标识符,选项卡的 v-model 根据此属性辨别当前展示的选项卡string——

Tab 插槽

插槽名说明
default定义默认内容

Powered by ❤️ L1en