Skip to content

TabBar 标签栏


按需引入

::: CopyCode

ts
import { createApp } from 'vue'
import App from './App.vue'
import { MeTabBar } from 'mine-h5-ui'
import 'mine-h5-ui/styles/MeTabBar.css'

createApp(App).use(MeTabBar).mount('#app')

:::

提示

  • 如果你觉得重新编写 HTML 结构麻烦,可以直接复制下面的代码。

代码演示

基础用法

::: CopyCode

vue
<script lang="ts" setup>
/**
 * 列表数据
 */
const listData = Object.freeze([
  {
    id: 1,
    icon: 'icon-home',
    text: '首页',
    state: true
  },
  {
    id: 2,
    icon: 'icon-tupian',
    text: '图片',
    state: false
  },
  {
    id: 3,
    icon: 'icon-gongnengguanli',
    text: '功能',
    state: false
  },
  {
    id: 4,
    icon: 'icon-user1',
    text: '用户',
    state: false
  }
])
</script>

<template>
  <me-tab-bar :list="listData" />
</template>

:::

徽标提示

  • 通过 dotbadge 来设置组件右上角的点和徽标提示。
  • 注意:dot 的权重高于 badge 的权重。

::: CopyCode

vue
<script lang="ts" setup>
/**
 * 列表数据
 */
const listData = Object.freeze([
  {
    id: 1,
    icon: 'icon-home',
    text: '首页',
    state: true
  },
  {
    id: 2,
    icon: 'icon-tupian',
    text: '图片',
    badge: '6',
    state: false
  },
  {
    id: 3,
    icon: 'icon-gongnengguanli',
    text: '功能',
    badge: 'A',
    state: false
  },
  {
    id: 4,
    icon: 'icon-user1',
    text: '用户',
    dot: true,
    state: false
  }
])
</script>

<template>
  <me-tab-bar :list="listData" />
</template>

:::

自定义图标

  • 通过 imgimgSelected 来设置组件未选中和选中状态的图标。
  • 注意:
    • imgimgSelected 是成对出现的。
    • icon 的权重高于 imgimgSelected 的权重。

::: CopyCode

vue
<script lang="ts" setup>
import img from '^/assets/verify.png'
import imgSelected from '^/assets/verify_selected.png'

/**
 * 列表数据
 */
const listData = Object.freeze([
  {
    id: 1,
    text: '安全',
    state: true,
    img,
    imgSelected
  },
  {
    id: 2,
    icon: 'icon-tupian',
    text: '图片',
    state: false
  },
  {
    id: 3,
    icon: 'icon-gongnengguanli',
    text: '功能',
    state: false
  },
  {
    id: 4,
    icon: 'icon-user1',
    text: '用户',
    state: false
  }
])
</script>

<template>
  <me-tab-bar :list="listData" />
</template>

:::

自定义颜色

  • 通过 border-colorbackground 属性来设置组件的背景颜色和上边框颜色,它们的默认分别为 #dcdfe6 和 #fff。
  • 通过 colorcolor-selected 属性来设置组件未选中和选中状态的颜色,它们的默认分别为 #949494 和 #409eff。

::: CopyCode

vue
<script lang="ts" setup>
/**
 * 自定义颜色
 */
const colors = Object.freeze({
  /**
   * 颜色
   */
  color: '',
  /**
   * 选中颜色
   */
  colorSelected: '',
  /**
   * 背景颜色
   */
  background: '',
  /**
   * 上边框颜色
   */
  borderColor: ''
})

/**
 * 列表数据
 */
const listData = Object.freeze([
  {
    id: 1,
    icon: 'icon-home',
    text: '首页',
    state: true
  },
  {
    id: 2,
    icon: 'icon-tupian',
    text: '图片',
    state: false
  },
  {
    id: 3,
    icon: 'icon-gongnengguanli',
    text: '功能',
    state: false
  },
  {
    id: 4,
    icon: 'icon-user1',
    text: '用户',
    state: false
  }
])
</script>

<template>
  <me-tab-bar :list="listData" v-bind="colors" />
</template>

:::

API

参数

参数说明类型可选值默认值版本
list组件数据,对象数组,详情Array----v2.0.0
border-color组件上边框颜色string--#dcdfe6v2.0.0
background组件背景颜色string--#fffv2.0.0
color未选中状态颜色string--#949494v2.0.0
colorSelected选中状态颜色string--#409effv2.0.0

List

参数说明类型可选值默认值版本
icon图标string----v2.0.0
text文本内容string----v2.0.0
dot图标右上角的点booleantrue / false--v2.0.0
state选中状态booleantrue / false--v2.0.0
badge图标右上角徽标的内容string----v2.0.0
img自定义未选中图标string----v2.0.0
imgSelected自定义选中图标string----v2.0.0

方法

方法名说明回调参数版本
change点击列表项时触发的事件item: Objectv2.3.5

基于 MIT 许可发布