项目正在快速迭代中,API 与视觉细节可能随版本调整,请勿用于生产环境。开发迭代中,请勿用于生产环境。
Skip to content
移动端专属组件

Tabbar 底部标签栏 ​

EvTabbar + EvTabbarItem 提供移动端一级导航:固定吸底(fixed)+ 全面屏安全区适配 + 等高占位(placeholder,防止脱离文档流后遮挡内容尾部)。页内内容切换由业务持有 v-model;页签未设 name 时以注册顺序索引为标识。fixed: false 可作为普通块级 标签栏内联使用(如卡片底部、演示壳内)。

基础用法 ​

吸底标签栏 + 内容切换
fixed 模式吸底(真机自动适配安全区);v-model 驱动页内切换。演示壳内用 fixed=false 内联。
9:41
首页
精选内容与推荐位
vue
<script setup>
import { ref } from 'vue'

const tab = ref('home')
</script>

<template>
  <component :is="pages[tab]" />

  <!-- 真机:fixed 吸底 + 安全区适配 + 自动占位 -->
  <EvTabbar v-model="tab">
    <EvTabbarItem name="home" icon="home">首页</EvTabbarItem>
    <EvTabbarItem name="discover" icon="search" badge="5">发现</EvTabbarItem>
    <EvTabbarItem name="mine" icon="user">我的</EvTabbarItem>
  </EvTabbar>
</template>

图标与红点 ​

页签图标用 icon 属性(EvIcon 注册名),需要区分选中态时用 #icon 插槽 (参数 active);dot 红点与 badge 角标都渲染在图标右上角,dot 优先。

icon 插槽 + dot/badge
#icon 插槽按 active 切换填充风格;「消息」红点常亮。
9:41
当前所在:feed
vue
<EvTabbar v-model="tab">
  <EvTabbarItem name="feed">
    <template #icon="{ active }">
      <EvIcon :name="active ? 'star-fill' : 'star'" :size="20" />
    </template>
    订阅
  </EvTabbarItem>
  <EvTabbarItem name="msg" icon="chat" dot>消息</EvTabbarItem>
  <EvTabbarItem name="me" icon="user" badge="New">我的</EvTabbarItem>
</EvTabbar>

API ​

EvTabbar ​

名称类型默认值说明
modelValuestring / number''当前激活项标识(v-model)
fixedbooleantrue吸底固定;false 时内联使用
placeholderbooleantruefixed 时渲染等高占位
borderbooleantrue顶部分隔线
safe-area-inset-bottombooleantrue适配全面屏底部安全区
glassboolean—磨砂玻璃标签栏;缺省跟随全局(ConfigProvider glass)
blurnumber / string—磨砂强度(px),内联覆盖 --ev-glass-blur
saturatenumber / string—磨砂饱和度(倍数),内联覆盖 --ev-glass-saturate
tintnumber / string—磨砂底色浓度(%),内联覆盖 --ev-glass-bg

EvTabbarItem ​

名称类型默认值说明
namestring / number''标识,缺省用注册顺序索引
iconstring''图标名(EvIcon 注册名)
dotbooleanfalse红点(优先于 badge)
badgestring / number''角标内容
disabledbooleanfalse禁用切换

事件与插槽 ​

  • EvTabbar:change(value) / update:modelValue;无插槽。
  • EvTabbarItem:#icon 插槽参数 { active };默认插槽为文字标签。

基于 MIT 许可证发布