Skip to content

Tabs 选项卡

用于在同一页面切换不同内容视图的水平标签栏,支持下划线滑动指示器、横向无限滚动 (scrollable) 与胶囊浮动变体 (pill)。


代码示例

1. 基础选项卡 (Basic Tabs)

vue
<template>
  <mu-tabs v-model="active" :items="items" @change="onChange" />
</template>

<script setup>
import { ref } from 'vue'

const active = ref(0)
const items = ref(['精选推荐', '数码极客', '服装美妆', '户外运动'])

const onChange = ({ index, item }) => {
  console.log('切换选项卡:', index, item)
}
</script>

2. 横向滚动与胶囊形态 (Scrollable & Pill)

vue
<template>
  <!-- 超出无限横向滚动 -->
  <mu-tabs v-model="active1" :items="longItems" scrollable />

  <!-- 胶囊样式变体 -->
  <mu-tabs v-model="active2" :items="items" variant="pill" />
</template>

API 属性说明 (Props)

参数名说明类型可选值默认值
v-model / modelValue / current / value当前激活选中的选项索引Number | String-0
items / tabs选项卡标签数组 (字符串数组或对象数组 [{label}])Array-[]
scrollable是否开启超长选项横向滑动Booleantrue | falsefalse
variant外观形态变体Stringline (下划线) | pill (胶囊)'line'
showLine是否展示底部高亮指示线条 (line 变体下生效)Booleantrue | falsetrue
lineColor指示线条颜色 (留空使用全局主题色)String-''
lineWidth指示线条宽度 (rpx/px)String-'36rpx'
lineHeight指示线条高度 (rpx/px)String-'6rpx'
activeColor / color激活态文字与高亮颜色String-''
bold激活项文字是否加粗Booleantrue | falsetrue
center是否居中排列Booleantrue | falsefalse
align对齐方式Stringleft | center | right | space-around'center'
gutter选项卡项目之间的横向间距 (rpx)Number | String-24
jelly是否开启“Q弹果冻”拉伸滑动动画Booleantrue | falsetrue
sticky是否开启吸顶置顶效果Booleantrue | falsefalse
offsetTop吸顶时的顶部偏移高度 (rpx/px)Number | String-0
zIndex吸顶层级 z-indexNumber | String-99

事件说明 (Events)

事件名说明回调参数
update:modelValue / update:current / update:value双向绑定索引改变时触发(index: Number)
change切换当前选项卡时触发(index: Number, item: String | Object)

基于 MIT 协议开源发行

H5 模拟器 (tabs)☀️🔄