垂直展示的導航欄,用于在不同的內容區(qū)域之間進行切換。
通過以下方式來全局注冊組件,更多注冊方式請參考組件注冊。
import { createApp } from 'vue';
import { Sidebar, SidebarItem } from 'vant';
const app = createApp();
app.use(Sidebar);
app.use(SidebarItem);
通過 v-model 綁定當前選中項的索引。
<van-sidebar v-model="active">
<van-sidebar-item title="標簽名稱" />
<van-sidebar-item title="標簽名稱" />
<van-sidebar-item title="標簽名稱" />
</van-sidebar>
import { ref } from 'vue';
export default {
setup() {
const active = ref(0);
return { active };
},
};
設置 dot 屬性后,會在右上角展示一個小紅點;設置 badge 屬性后,會在右上角展示相應的徽標。
<van-sidebar v-model="active">
<van-sidebar-item title="標簽名稱" dot />
<van-sidebar-item title="標簽名稱" badge="5" />
<van-sidebar-item title="標簽名稱" badge="20" />
</van-sidebar>
通過 disabled 屬性禁用選項。
<van-sidebar v-model="active">
<van-sidebar-item title="標簽名稱" />
<van-sidebar-item title="標簽名稱" disabled />
<van-sidebar-item title="標簽名稱" />
</van-sidebar>
設置 change 方法來監(jiān)聽切換導航項時的事件。
<van-sidebar v-model="active" @change="onChange">
<van-sidebar-item title="標簽名 1" />
<van-sidebar-item title="標簽名 2" />
<van-sidebar-item title="標簽名 3" />
</van-sidebar>
import { ref } from 'vue';
import { Toast } from 'vant';
export default {
setup() {
const active = ref(0);
const onChange = (index) => Toast(`標簽名 ${index + 1}`);
return {
active,
onChange,
};
},
};
參數 | 說明 | 類型 | 默認值 |
---|---|---|---|
v-model | 當前導航項的索引 | number | string | 0
|
事件名 | 說明 | 回調參數 |
---|---|---|
change | 切換導航項時觸發(fā) | index: number |
參數 | 說明 | 類型 | 默認值 |
---|---|---|---|
title | 內容 | string | ''
|
dot | 是否顯示右上角小紅點 | boolean | false
|
badge | 圖標右上角徽標的內容 | number | string | - |
disabled | 是否禁用該項 | boolean | false
|
url | 點擊后跳轉的鏈接地址 | string | - |
to | 點擊后跳轉的目標路由對象,等同于 vue-router 的 to 屬性 | string | object | - |
replace | 是否在跳轉時替換當前頁面歷史 | boolean | false
|
事件名 | 說明 | 回調參數 |
---|---|---|
click | 點擊時觸發(fā) | index: number |
Name | Description |
---|---|
title | 自定義標題 |
組件提供了下列 CSS 變量,可用于自定義樣式,使用方法請參考 ConfigProvider 組件。
名稱 | 默認值 | 描述 |
---|---|---|
--van-sidebar-width | 80px | - |
--van-sidebar-font-size | var(--van-font-size-md) | - |
--van-sidebar-line-height | var(--van-line-height-md) | - |
--van-sidebar-text-color | var(--van-text-color) | - |
--van-sidebar-disabled-text-color | var(--van-gray-5) | - |
--van-sidebar-padding | 20px var(--van-padding-sm) | - |
--van-sidebar-active-color | var(--van-active-color) | - |
--van-sidebar-background-color | var(--van-background-color) | - |
--van-sidebar-selected-font-weight | var(--van-font-weight-bold) | - |
--van-sidebar-selected-text-color | var(--van-text-color) | - |
--van-sidebar-selected-border-width | 4px | - |
--van-sidebar-selected-border-height | 16px | - |
--van-sidebar-selected-border-color | var(--van-danger-color) | - |
--van-sidebar-selected-background-color | var(--van-white) | - |
更多建議: