Skip to content

Tabs 标签页

MoTabs 用于同级内容切换。items 决定标签列表,v-model 保存当前选中项的 value;如果没有传入或找不到匹配值,默认选中第一项。

基础用法

Light
当前面板:基础信息
Dark
当前面板:基础信息
vue
<script setup lang="ts">
import { ref } from "vue";

const active = ref("basic");
const items = [
  { label: "基础信息", value: "basic" },
  { label: "运行配置", value: "runtime" },
  { label: "发布记录", value: "release" }
];
</script>

<template>
  <MoTabs v-model="active" :items="items">
    <template #panel="{ item }">
      当前面板:{{ item.label }}
    </template>
  </MoTabs>
</template>

尺寸

Light
Dark
vue
<MoTabs v-model="active" size="small" :items="items" />
<MoTabs v-model="active" :items="items" />
<MoTabs v-model="active" size="large" :items="items" />

禁用项

Light
概览 内容
Dark
概览 内容
ts
const items = [
  { label: "概览", value: "overview" },
  { label: "设置", value: "settings", disabled: true },
  { label: "日志", value: "logs" }
];

自定义 Label 与 Panel

Light
待处理:共 8 条记录。
Dark
待处理:共 8 条记录。
vue
<MoTabs v-model="active" :items="items">
  <template #label="{ item, selected }">
    <span :class="{ active: selected }">
      {{ item.label }}
      <span>{{ item.count }}</span>
    </span>
  </template>

  <template #panel="{ item }">
    {{ item.label }}:共 {{ item.count }} 条记录。
  </template>
</MoTabs>

自定义颜色

Light
Dark
vue
<MoTabs
  v-model="active"
  :items="items"
  background-color="#eef2ff"
  active-background-color="linear-gradient(90deg, #2563eb, #0d9488)"
/>

Change 事件

Light

等待切换

Dark

等待切换

vue
<MoTabs v-model="active" :items="items" @change="handleChange" />
ts
function handleChange(value, item, index) {
  console.log(value, item, index);
}

API

属性说明类型默认值
v-model当前选中值string | number-
items标签项TabsItem[]必填
size尺寸small | default | largedefault
theme主题light | darklight
backgroundColor自定义标签栏背景string-
activeBackgroundColor自定义激活指示器背景string-

TabsItem

字段说明类型
label标签文本string
value标签值string | number
disabled是否禁用boolean

Events

事件说明参数
change当前选中项变化时触发value, item, index

Slots

插槽说明
label自定义标签内容,参数 { item, index, selected }
panel自定义面板内容,参数 { item, index }