Tabs 标签页

    选项卡切换组件,常用于平级区域大块内容的的收纳和展现。

    基础用法

    TabPanename 对应,用于标识当前激活的是哪一项,name 值默认从 0 开始,默认激活第一项。可以使用 v-model 双向绑定数据。

    Tabs 标签页 - 图2

    禁用

    禁用某一项。

    1. <template>
    2. <Tabs>
    3. <TabPane label="标签一">标签一的内容</TabPane>
    4. <TabPane label="标签二" disabled>标签二的内容</TabPane>
    5. <TabPane label="标签三">标签三的内容</TabPane>
    6. </Tabs>
    7. </template>
    8. <script>
    9. export default {
    10. }
    11. </script>

    图标

    通过设置属性 icon,可以显示一个图标。

    1. <template>
    2. <Tabs>
    3. <TabPane label="macOS" icon="logo-apple">标签一的内容</TabPane>
    4. <TabPane label="Windows" icon="logo-windows">标签二的内容</TabPane>
    5. <TabPane label="Linux" icon="logo-tux">标签三的内容</TabPane>
    6. </Tabs>
    7. </template>
    8. <script>
    9. export default {
    10. }
    11. </script>

    Tabs 标签页 - 图4

    设置属性 sizesmall 可以显示为迷你型,只在 typeline 时有效。

    卡片样式

    设置属性 typecard 可以显示卡片样式,常用于容器顶部。

    1. <template>
    2. <TabPane label="标签一">标签一的内容</TabPane>
    3. <TabPane label="标签二">标签二的内容</TabPane>
    4. </Tabs>
    5. </template>
    6. <script>
    7. export default {
    8. }
    9. </script>

    Tabs 标签页 - 图6

    可关闭

    通过设置属性 closable 可以关闭某一项,仅在 typecard 时有效。

    需结合 @on-tab-remove 事件手动关闭标签页。

    1. <template>
    2. <Tabs type="card" closable @on-tab-remove="handleTabRemove">
    3. <TabPane label="标签一" v-if="tab0">标签一的内容</TabPane>
    4. <TabPane label="标签二" v-if="tab1">标签二的内容</TabPane>
    5. <TabPane label="标签三" v-if="tab2">标签三的内容</TabPane>
    6. </Tabs>
    7. </template>
    8. <script>
    9. export default {
    10. data () {
    11. return {
    12. tab0: true,
    13. tab1: true,
    14. tab2: true
    15. }
    16. },
    17. methods: {
    18. handleTabRemove (name) {
    19. this['tab' + name] = false;
    20. }
    21. }
    22. }

    自定义标签页

    设置 label 为 Render 函数后,可以自定义标签页的内容。

    附加内容

    设置 slot extra 可以在页签右边添加附加操作。

    1. <template>
    2. <Tabs type="card">
    3. <TabPane v-for="tab in tabs" :key="tab" :label="'标签' + tab">标签{{ tab }}</TabPane>
    4. </Tabs>
    5. </template>
    6. <script>
    7. export default {
    8. data () {
    9. return {
    10. tabs: 2
    11. }
    12. },
    13. methods: {
    14. handleTabsAdd () {
    15. this.tabs ++;
    16. }
    17. }
    18. }
    19. </script>

    Tabs 标签页 - 图9

    不使用动画

    通过设置属性 animatedfalse 可以禁用动画。

    1. <template>
    2. <Tabs :animated="false">
    3. <TabPane label="标签一">标签一的内容</TabPane>
    4. <TabPane label="标签二">标签二的内容</TabPane>
    5. <TabPane label="标签三">标签三的内容</TabPane>
    6. </Tabs>
    7. </template>
    8. <script>
    9. export default {
    10. }
    11. </script>

    其它样式

    可以根据业务自定义 UI,需要一点额外的样式覆盖。