Vant Tabbar 標(biāo)簽欄

2022-05-31 13:39 更新

引入

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

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

代碼演示

基礎(chǔ)用法

v-model默認(rèn)綁定選中標(biāo)簽的索引值,通過(guò)修改v-model即可切換選中的標(biāo)簽

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

通過(guò)名稱(chēng)匹配

在標(biāo)簽指定name屬性的情況下,v-model的值為當(dāng)前標(biāo)簽的name

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

提示信息

設(shè)置dot屬性后,會(huì)在圖標(biāo)右上角展示一個(gè)小紅點(diǎn)。設(shè)置info屬性后,會(huì)在圖標(biāo)右上角展示相應(yīng)的徽標(biāo)

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

自定義圖標(biāo)

通過(guò) icon 插槽自定義圖標(biāo),可以通過(guò) slot-scope 判斷標(biāo)簽是否選中

<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">標(biāo)簽</van-tabbar-item>
  <van-tabbar-item icon="setting-o">標(biā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">標(biāo)簽</van-tabbar-item>
  <van-tabbar-item icon="search">標(biāo)簽</van-tabbar-item>
  <van-tabbar-item icon="freinds-o">標(biāo)簽</van-tabbar-item>
  <van-tabbar-item icon="setting-o">標(biāo)簽</van-tabbar-item>
</van-tabbar>

監(jiān)聽(tīng)切換事件

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

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

路由模式

標(biāo)簽欄支持路由模式,用于搭配vue-router使用。路由模式下會(huì)匹配頁(yè)面路徑和標(biāo)簽的to屬性,并自動(dòng)選中對(duì)應(yīng)的標(biāo)簽

<router-view />

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

API

Tabbar Props

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

Tabbar Events

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

TabbarItem Props

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

TabbarItem Slots

名稱(chēng)說(shuō)明SlotProps
icon自定義圖標(biāo)active: 是否為選中標(biāo)簽


實(shí)例演示

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)