Vant Tabbar 標簽欄

2022-05-31 13:39 更新

引入

import Vue from 'vue';
import { Tabbar, TabbarItem } from 'vant';

Vue.use(Tabbar);
Vue.use(TabbarItem);

代碼演示

基礎用法

v-model默認綁定選中標簽的索引值,通過修改v-model即可切換選中的標簽

<van-tabbar v-model="active">
  <van-tabbar-item icon="home-o">標簽</van-tabbar-item>
  <van-tabbar-item icon="search">標簽</van-tabbar-item>
  <van-tabbar-item icon="friends-o">標簽</van-tabbar-item>
  <van-tabbar-item icon="setting-o">標簽</van-tabbar-item>
</van-tabbar>
export default {
  data() {
    return {
      active: 0
    }
  }
}

通過名稱匹配

在標簽指定name屬性的情況下,v-model的值為當前標簽的name

<van-tabbar v-model="active">
  <van-tabbar-item name="home" icon="home-o">標簽</van-tabbar-item>
  <van-tabbar-item name="search" icon="search">標簽</van-tabbar-item>
  <van-tabbar-item name="friends" icon="friends-o">標簽</van-tabbar-item>
  <van-tabbar-item name="setting" icon="setting-o">標簽</van-tabbar-item>
</van-tabbar>
export default {
  data() {
    return {
      active: 'home'
    }
  }
}

提示信息

設置dot屬性后,會在圖標右上角展示一個小紅點。設置info屬性后,會在圖標右上角展示相應的徽標

<van-tabbar v-model="active">
  <van-tabbar-item icon="home-o">標簽</van-tabbar-item>
  <van-tabbar-item icon="search" dot>標簽</van-tabbar-item>
  <van-tabbar-item icon="friends-o" info="5">標簽</van-tabbar-item>
  <van-tabbar-item icon="setting-o" info="20">標簽</van-tabbar-item>
</van-tabbar>

自定義圖標

通過 icon 插槽自定義圖標,可以通過 slot-scope 判斷標簽是否選中

<van-tabbar v-model="active">
  <van-tabbar-item info="3">
    <span>自定義</span>
    <img
      slot="icon"
      slot-scope="props"
      :src="props.active ? icon.active : icon.inactive"
    >
  </van-tabbar-item>
  <van-tabbar-item icon="search">標簽</van-tabbar-item>
  <van-tabbar-item icon="setting-o">標簽</van-tabbar-item>
</van-tabbar>
export default {
  data() {
    return {
      active: 0,
      icon: {
        active: 'https://img.yzcdn.cn/vant/user-active.png',
        inactive: 'https://img.yzcdn.cn/vant/user-inactive.png'
      }
    }
  }
}

自定義顏色

<van-tabbar
  v-model="active"
  active-color="#07c160"
  inactive-color="#000"
>
  <van-tabbar-item icon="home-o">標簽</van-tabbar-item>
  <van-tabbar-item icon="search">標簽</van-tabbar-item>
  <van-tabbar-item icon="freinds-o">標簽</van-tabbar-item>
  <van-tabbar-item icon="setting-o">標簽</van-tabbar-item>
</van-tabbar>

監(jiān)聽切換事件

<van-tabbar v-model="active" @change="onChange">
  <van-tabbar-item icon="home-o">標簽1</van-tabbar-item>
  <van-tabbar-item icon="search">標簽2</van-tabbar-item>
  <van-tabbar-item icon="freinds-o">標簽3</van-tabbar-item>
  <van-tabbar-item icon="setting-o">標簽4</van-tabbar-item>
</van-tabbar>
import { Notify } from 'vant';

export default {
  methods: {
    onChange(index) {
      Notify({ type: 'primary', message: index });
    }
  }
}

路由模式

標簽欄支持路由模式,用于搭配vue-router使用。路由模式下會匹配頁面路徑和標簽的to屬性,并自動選中對應的標簽

<router-view />

<van-tabbar route>
  <van-tabbar-item replace to="/home" icon="home-o">
    標簽
  </van-tabbar-item>
  <van-tabbar-item replace to="/search" icon="search">
    標簽
  </van-tabbar-item>
</van-tabbar>

API

Tabbar Props

參數(shù)說明類型默認值
v-model當前選中標簽的名稱或索引值number | string0
fixed是否固定在底部booleantrue
border是否顯示外邊框booleantrue
z-index元素 z-indexnumber | string1
active-color選中標簽的顏色string#1989fa
inactive-color未選中標簽的顏色string#7d7e80
route是否開啟路由模式booleanfalse
safe-area-inset-bottom是否開啟 底部安全區(qū)適配booleanfalse

Tabbar Events

事件名說明回調(diào)參數(shù)
change切換標簽時觸發(fā)active: 當前選中標簽的名稱或索引值

TabbarItem Props

參數(shù)說明類型默認值
name標簽名稱,作為匹配的標識符number | string當前標簽的索引值
icon圖標名稱 或圖片鏈接string-
dot是否顯示圖標右上角小紅點booleanfalse
info圖標右上角徽標的內(nèi)容number | string-
url點擊后跳轉(zhuǎn)的鏈接地址string-
to點擊后跳轉(zhuǎn)的目標路由對象,同 vue-router 的 to 屬性string | object-
replace是否在跳轉(zhuǎn)時替換當前頁面歷史booleanfalse

TabbarItem Slots

名稱說明SlotProps
icon自定義圖標active: 是否為選中標簽


實例演示

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號