import Vue from 'vue';
import { Tab, Tabs } from 'vant';
Vue.use(Tab);
Vue.use(Tabs);
通過(guò)v-model
綁定當(dāng)前激活標(biāo)簽對(duì)應(yīng)的索引值,默認(rèn)情況下啟用第一個(gè)標(biāo)簽
<van-tabs v-model="active">
<van-tab title="標(biāo)簽 1">內(nèi)容 1</van-tab>
<van-tab title="標(biāo)簽 2">內(nèi)容 2</van-tab>
<van-tab title="標(biāo)簽 3">內(nèi)容 3</van-tab>
<van-tab title="標(biāo)簽 4">內(nèi)容 4</van-tab>
</van-tabs>
export default {
data() {
return {
active: 2
};
}
}
在標(biāo)簽指定name屬性的情況下,v-model
的值為當(dāng)前標(biāo)簽的name
<van-tabs v-model="activeName">
<van-tab title="標(biāo)簽 1" name="a">內(nèi)容 1</van-tab>
<van-tab title="標(biāo)簽 2" name="b">內(nèi)容 2</van-tab>
<van-tab title="標(biāo)簽 3" name="c">內(nèi)容 3</van-tab>
</van-tabs>
export default {
data() {
return {
activeName: 'a'
};
}
}
標(biāo)簽數(shù)量超過(guò) 4 個(gè)時(shí),標(biāo)簽欄可以在水平方向上滾動(dòng),切換時(shí)會(huì)自動(dòng)將當(dāng)前標(biāo)簽居中
<van-tabs>
<van-tab v-for="index in 8" :title="'標(biāo)簽 ' + index">
內(nèi)容 {{ index }}
</van-tab>
</van-tabs>
設(shè)置disabled
屬性即可禁用標(biāo)簽。如果需要監(jiān)聽(tīng)禁用標(biāo)簽的點(diǎn)擊事件,可以在van-tabs
上監(jiān)聽(tīng)disabled
事件
<van-tabs @disabled="onClickDisabled">
<van-tab title="標(biāo)簽 1">內(nèi)容 1</van-tab>
<van-tab title="標(biāo)簽 2" disabled>內(nèi)容 2</van-tab>
<van-tab title="標(biāo)簽 3">內(nèi)容 3</van-tab>
</van-tabs>
import { Toast } from 'vant';
export default {
methods: {
onClickDisabled(name, title) {
Toast(name + '已被禁用');
}
}
};
Tab支持兩種樣式風(fēng)格:line
和card
,默認(rèn)為line樣式,可以通過(guò)type
屬性修改樣式風(fēng)格
<van-tabs type="card">
<van-tab title="標(biāo)簽 1">內(nèi)容 1</van-tab>
<van-tab title="標(biāo)簽 2">內(nèi)容 2</van-tab>
<van-tab title="標(biāo)簽 3">內(nèi)容 3</van-tab>
</van-tabs>
可以在van-tabs
上綁定click
事件,事件傳參為標(biāo)簽對(duì)應(yīng)的索引和標(biāo)題
<van-tabs @click="onClick">
<van-tab title="標(biāo)簽 1">內(nèi)容 1</van-tab>
<van-tab title="標(biāo)簽 2">內(nèi)容 2</van-tab>
</van-tabs>
import { Toast } from 'vant';
export default {
methods: {
onClick(name, title) {
Toast(title);
}
}
};
通過(guò)sticky
屬性可以開(kāi)啟粘性布局,粘性布局下,當(dāng) Tab 滾動(dòng)到頂部時(shí)會(huì)自動(dòng)吸頂
<van-tabs v-model="active" sticky>
<van-tab v-for="index in 4" :title="'選項(xiàng) ' + index">
內(nèi)容 {{ index }}
</van-tab>
</van-tabs>
通過(guò) title
插槽可以自定義標(biāo)簽內(nèi)容
<van-tabs v-model="active">
<van-tab v-for="index in 2">
<div slot="title">
<van-icon name="more-o" />選項(xiàng)
</div>
內(nèi)容 {{ index }}
</van-tab>
</van-tabs>
通過(guò)animated
屬性可以開(kāi)啟切換標(biāo)簽內(nèi)容時(shí)的轉(zhuǎn)場(chǎng)動(dòng)畫
<van-tabs v-model="active" animated>
<van-tab v-for="index in 4" :title="'選項(xiàng) ' + index">
內(nèi)容 {{ index }}
</van-tab>
</van-tabs>
通過(guò)swipeable
屬性可以開(kāi)啟滑動(dòng)切換標(biāo)簽頁(yè)
<van-tabs v-model="active" swipeable>
<van-tab v-for="index in 4" :title="'選項(xiàng) ' + index">
內(nèi)容 {{ index }}
</van-tab>
</van-tabs>
通過(guò)scrollspy
屬性可以開(kāi)啟滾動(dòng)導(dǎo)航模式,該模式下,內(nèi)容將會(huì)平鋪展示
<van-tabs v-model="active" scrollspy sticky>
<van-tab v-for="index in 8" :title="'選項(xiàng) ' + index">
內(nèi)容 {{ index }}
</van-tab>
</van-tabs>
參數(shù) | 說(shuō)明 | 類型 | 默認(rèn)值 |
---|---|---|---|
v-model | 綁定當(dāng)前選中標(biāo)簽的標(biāo)識(shí)符 | number | string | 0
|
type | 樣式風(fēng)格類型,可選值為card
|
string | line
|
color | 標(biāo)簽主題色 | string | #ee0a24
|
background | 標(biāo)簽欄背景色 | string | white
|
duration | 動(dòng)畫時(shí)間,單位秒 | number | string | 0.3
|
line-width | 底部條寬度,默認(rèn)單位px
|
number | string | auto
|
line-height | 底部條高度,默認(rèn)單位px
|
number | string | 3px
|
animated | 是否開(kāi)啟切換標(biāo)簽內(nèi)容時(shí)的轉(zhuǎn)場(chǎng)動(dòng)畫 | boolean | false
|
border | 是否顯示標(biāo)簽欄外邊框,僅在type="line" 時(shí)有效 |
boolean | true
|
ellipsis | 是否省略過(guò)長(zhǎng)的標(biāo)題文字 | boolean | true
|
sticky | 是否使用粘性定位布局 | boolean | false
|
swipeable | 是否開(kāi)啟手勢(shì)滑動(dòng)切換 | boolean | false
|
lazy-render | 是否開(kāi)啟延遲渲染(首次切換到標(biāo)簽時(shí)才觸發(fā)內(nèi)容渲染) | boolean | true
|
scrollspy v2.3.0
|
是否開(kāi)啟滾動(dòng)導(dǎo)航 | boolean | false
|
offset-top | 粘性定位布局下與頂部的最小距離,單位px
|
number | string | 0
|
swipe-threshold | 滾動(dòng)閾值,標(biāo)簽數(shù)量超過(guò)閾值時(shí)開(kāi)始橫向滾動(dòng) | number | string | 4
|
title-active-color | 標(biāo)題選中態(tài)顏色 | string | - |
title-inactive-color | 標(biāo)題默認(rèn)態(tài)顏色 | string | - |
參數(shù) | 說(shuō)明 | 類型 | 默認(rèn)值 |
---|---|---|---|
title | 標(biāo)題 | string | - |
disabled | 是否禁用標(biāo)簽 | boolean | false
|
dot v2.3.0
|
是否在標(biāo)題右上角顯示小紅點(diǎn) | boolean | false
|
info v2.3.0
|
標(biāo)題右上角徽標(biāo)的內(nèi)容 | number | string | - |
name v2.0.6
|
標(biāo)簽名稱,作為匹配的標(biāo)識(shí)符 | number | string | 標(biāo)簽的索引值 |
url v2.2.1
|
點(diǎn)擊后跳轉(zhuǎn)的鏈接地址 | string | - |
to v2.2.1
|
點(diǎn)擊后跳轉(zhuǎn)的目標(biāo)路由對(duì)象,同 vue-router 的 to 屬性
|
string | object | - |
replace v2.2.1
|
是否在跳轉(zhuǎn)時(shí)替換當(dāng)前頁(yè)面歷史 | boolean | false
|
title-style v2.2.14
|
自定義標(biāo)題樣式 | any | - |
事件名 | 說(shuō)明 | 回調(diào)參數(shù) |
---|---|---|
click | 點(diǎn)擊標(biāo)簽時(shí)觸發(fā) | name:標(biāo)識(shí)符,title:標(biāo)題 |
change | 當(dāng)前激活的標(biāo)簽改變時(shí)觸發(fā) | name:標(biāo)識(shí)符,title:標(biāo)題 |
disabled | 點(diǎn)擊被禁用的標(biāo)簽時(shí)觸發(fā) | name:標(biāo)識(shí)符,title:標(biāo)題 |
rendered v2.3.0
|
標(biāo)簽內(nèi)容首次渲染時(shí)觸發(fā)(僅在開(kāi)啟延遲渲染后觸發(fā)) | name:標(biāo)識(shí)符,title:標(biāo)題 |
scroll | 滾動(dòng)時(shí)觸發(fā),僅在 sticky 模式下生效 | { scrollTop: 距離頂部位置, isFixed: 是否吸頂 } |
通過(guò) ref
可以獲取到 Tabs
實(shí)例并調(diào)用實(shí)例方法,詳見(jiàn) 組件實(shí)例方法
方法名 | 說(shuō)明 | 參數(shù) | 返回值 |
---|---|---|---|
resize | 外層元素大小變化后,可以調(diào)用此方法來(lái)觸發(fā)重繪 | - | void |
名稱 | 說(shuō)明 |
---|---|
nav-left | 標(biāo)題左側(cè)內(nèi)容 |
nav-right | 標(biāo)題右側(cè)內(nèi)容 |
名稱 | 說(shuō)明 |
---|---|
default | 標(biāo)簽頁(yè)內(nèi)容 |
title | 自定義標(biāo)題,不支持動(dòng)態(tài)渲染 |
更多建議: