# Tabbar 标签栏


# 引入

在 app.json 或 index.json 中引入组件,详细介绍见快速上手

"usingComponents": {
   "lin-tabbar": "/dist/tabbar/index",
   "lin-tabbar-item": "/dist/tabbar-item/index"
}

# 基础用法

通过active设定当前激活标签对应的索引值

代码示例
<lin-tabbar
  safeAreaInsetBottom="{ {false}}"
  fixed="{ {false}}"
  border="{ {false}}"
  data-key="active1"
  active="{ { active1 }}"
  bind:change="onChange"
>
  <lin-tabbar-item icon="like">标签</lin-tabbar-item>
  <lin-tabbar-item icon="search">标签</lin-tabbar-item>
  <lin-tabbar-item icon="user">标签</lin-tabbar-item>
  <lin-tabbar-item icon="setting">标签</lin-tabbar-item>
</lin-tabbar>
Page({
  data: {
    active1: 0,
  },
  onChange(event) {
    const { key } = event.currentTarget.dataset;
    this.setData({ [key]: event.detail });
  },
});

# 通过名称匹配

在标签指定name属性的情况下,active的值为当前标签的name

代码示例
<lin-tabbar
  safeAreaInsetBottom="{ {false}}"
  fixed="{ {false}}"
  border="{ {false}}"
  data-key="active2"
  active="{ { active2 }}"
  bind:change="onChange"
>
  <lin-tabbar-item name="like" icon="like">标签</lin-tabbar-item>
  <lin-tabbar-item name="search" icon="search">标签</lin-tabbar-item>
  <lin-tabbar-item name="user" icon="user">标签</lin-tabbar-item>
  <lin-tabbar-item name="setting" icon="setting">标签</lin-tabbar-item>
</lin-tabbar>
Page({
  data: {
    active2: "like",
  },
  onChange(event) {
    const { key } = event.currentTarget.dataset;
    this.setData({ [key]: event.detail });
  },
});

# 显示徽标

设置dot属性后,会在右上角展示一个小红点。设置badge属性后,会在右上角展示相应的徽标

代码示例
<lin-tabbar
  safeAreaInsetBottom="{ {false}}"
  fixed="{ {false}}"
  border="{ {false}}"
  data-key="active3"
  active="{ { active3 }}"
  bind:change="onChange"
>
  <lin-tabbar-item icon="like">标签</lin-tabbar-item>
  <lin-tabbar-item icon="search" dot>标签</lin-tabbar-item>
  <lin-tabbar-item icon="user" info="5">标签</lin-tabbar-item>
  <lin-tabbar-item icon="setting" info="20">标签</lin-tabbar-item>
</lin-tabbar>
Page({
  data: {
    active3: 0,
  },
  onChange(event) {
    const { key } = event.currentTarget.dataset;
    this.setData({ [key]: event.detail });
  },
});

# 自定义图标

可以通过 slot 自定义图标,其中 icon slot 代表未选中状态下的图标,icon-active slot 代表选中状态下的图标

代码示例
<lin-tabbar
  safeAreaInsetBottom="{ {false}}"
  fixed="{ {false}}"
  border="{ {false}}"
  data-key="active4"
  active="{ { active4 }}"
  bind:change="onChange"
>
  <lin-tabbar-item info="3">
    <lin-icon size="50rpx" icon="star" slot="icon" />
    <lin-icon size="50rpx" icon="star" slot="icon-active" />
    自定义
  </lin-tabbar-item>
  <lin-tabbar-item icon="search">标签</lin-tabbar-item>
  <lin-tabbar-item icon="user">标签</lin-tabbar-item>
  <lin-tabbar-item icon="setting">标签</lin-tabbar-item>
</lin-tabbar>
Page({
  data: {
    active4: 0,
  },
  onChange(event) {
    const { key } = event.currentTarget.dataset;
    this.setData({ [key]: event.detail });
  },
});

# 自定义颜色

通过active-color设置选中标签的颜色,inactive-color设置未选中标签的颜色

代码示例
<lin-tabbar
  safeAreaInsetBottom="{ {false}}"
  active-color="#07c160"
  inactive-color="#000"
  fixed="{ {false}}"
  border="{ {false}}"
  data-key="active5"
  active="{ { active5 }}"
  bind:change="onChange"
>
  <lin-tabbar-item icon="like">标签</lin-tabbar-item>
  <lin-tabbar-item icon="search">标签</lin-tabbar-item>
  <lin-tabbar-item icon="user">标签</lin-tabbar-item>
  <lin-tabbar-item icon="setting">标签</lin-tabbar-item>
</lin-tabbar>
Page({
  data: {
    active5: 0,
  },
  onChange(event) {
    const { key } = event.currentTarget.dataset;
    this.setData({ [key]: event.detail });
  },
});

# Tabbar 属性

参数 说明 类型 可选值 默认值
active 当前选中标签的索引 String, Number 0
fixed 是否固定在底部 Boolean false
placeholder 固定在底部时,是否在标签位置生成一个等高的占位元素 Boolean false
border 是否展示外边框 Boolean true
zIndex 元素 z-index Number
activeColor 选中标签的颜色 String
inactiveColor 未选中标签的颜色 String
safeAreaInsetBottom 是否为 iPhoneX 留出底部安全距离 Boolean true

# Tabbar 事件

事件名 说明 参数
bind:change 切换标签时触发 当前选中标签的名称或索引值

# Tabbar 外部样式类

类名 说明
custom-class 根节点样式类
placeholder-class 占位元素样式类

# TabbarItem 属性

参数 说明 类型 可选值 默认值
name 标签名称,作为匹配的标识符 String, Number
icon 图标名称 String
dot 是否显示小红点 Boolean false
info 图标右上角提示信息 String, Number

# TabbarItem 插槽

插槽名称 说明
默认显示内容
icon 未选中时的图标
icon-active 选中时的图标

# TabbarItem 外部样式类

类名 说明
custom-class 根节点样式类
content-class 选项内容样式类