Tabbar 标签栏

基础用法

  1. <van-tabbar v-model="active">
  2. <van-tabbar-item icon="home-o">标签</van-tabbar-item>
  3. <van-tabbar-item icon="search">标签</van-tabbar-item>
  4. <van-tabbar-item icon="friends-o">标签</van-tabbar-item>
  5. <van-tabbar-item icon="setting-o">标签</van-tabbar-item>
  6. </van-tabbar>
  1. export default {
  2. data() {
  3. return {
  4. active: 0,
  5. };
  6. };

通过名称匹配

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

  1. <van-tabbar v-model="active">
  2. <van-tabbar-item name="home" icon="home-o">标签</van-tabbar-item>
  3. <van-tabbar-item name="search" icon="search">标签</van-tabbar-item>
  4. <van-tabbar-item name="friends" icon="friends-o">标签</van-tabbar-item>
  5. <van-tabbar-item name="setting" icon="setting-o">标签</van-tabbar-item>
  6. </van-tabbar>

徽标提示

  1. <van-tabbar v-model="active">
  2. <van-tabbar-item icon="home-o">标签</van-tabbar-item>
  3. <van-tabbar-item icon="search" dot>标签</van-tabbar-item>
  4. <van-tabbar-item icon="friends-o" badge="5">标签</van-tabbar-item>
  5. <van-tabbar-item icon="setting-o" badge="20">标签</van-tabbar-item>
  6. </van-tabbar>

通过 icon 插槽自定义图标,可以通过 slot-scope 判断标签是否选中。

  1. <van-tabbar v-model="active">
  2. <span>自定义</span>
  3. <template #icon="props">
  4. <img :src="props.active ? icon.active : icon.inactive" />
  5. </template>
  6. </van-tabbar-item>
  7. <van-tabbar-item icon="search">标签</van-tabbar-item>
  8. <van-tabbar-item icon="setting-o">标签</van-tabbar-item>
  9. </van-tabbar>
  1. export default {
  2. data() {
  3. return {
  4. icon: {
  5. active: 'https://img01.yzcdn.cn/vant/user-active.png',
  6. inactive: 'https://img01.yzcdn.cn/vant/user-inactive.png',
  7. },
  8. };
  9. },
  10. };

自定义颜色

监听切换事件

  1. <van-tabbar v-model="active" @change="onChange">
  2. <van-tabbar-item icon="home-o">标签1</van-tabbar-item>
  3. <van-tabbar-item icon="search">标签2</van-tabbar-item>
  4. <van-tabbar-item icon="friends-o">标签3</van-tabbar-item>
  5. <van-tabbar-item icon="setting-o">标签4</van-tabbar-item>
  6. </van-tabbar>
  1. import { Notify } from 'vant';
  2. export default {
  3. methods: {
  4. onChange(index) {
  5. Notify({ type: 'primary', message: index });
  6. },
  7. },
  8. };

路由模式

  1. <router-view />
  2. <van-tabbar route>
  3. <van-tabbar-item replace to="/home" icon="home-o">标签</van-tabbar-item>
  4. </van-tabbar>

API

Tabbar Events

TabbarItem Props

TabbarItem Slots

组件提供了下列 Less 变量,可用于自定义样式,使用方法请参考主题定制