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