引入
在app.json
或index.json
中引入組件,默認(rèn)為ES6
版本,
"usingComponents": {
"van-dropdown-menu": "@vant/weapp/dropdown-menu/index",
"van-dropdown-item": "@vant/weapp/dropdown-item/index"
}
代碼演示
基礎(chǔ)用法
<van-dropdown-menu>
<van-dropdown-item value="{{ value1 }}" options="{{ option1 }}" />
<van-dropdown-item value="{{ value2 }}" options="{{ option2 }}" />
</van-dropdown-menu>
Page({
data: {
option1: [
{ text: '全部商品', value: 0 },
{ text: '新款商品', value: 1 },
{ text: '活動(dòng)商品', value: 2 },
],
option2: [
{ text: '默認(rèn)排序', value: 'a' },
{ text: '好評(píng)排序', value: 'b' },
{ text: '銷(xiāo)量排序', value: 'c' },
],
value1: 0,
value2: 'a',
},
});
自定義菜單內(nèi)容
通過(guò)插槽可以自定義DropdownItem的內(nèi)容,此時(shí)需要使用實(shí)例上的toggle方法手動(dòng)控制菜單的顯示
<van-dropdown-menu>
<van-dropdown-item value="{{ value1 }}" options="{{ option1 }}" />
<van-dropdown-item id="item" title="{{ itemTitle }}">
<van-cell title="{{ switchTitle1 }}">
<van-switch
slot="right-icon"
size="24px"
style="height: 26px"
checked="{{ switch1 }}"
bind:change="onSwitch1Change"
/>
</van-cell>
<van-cell title="{{ switchTitle2 }}">
<van-switch
slot="right-icon"
size="24px"
style="height: 26px"
checked="{{ switch2 }}"
bind:change="onSwitch2Change"
/>
</van-cell>
<van-button type="info" block bind:click="onConfirm">
確定
</van-button>
</van-dropdown-item>
</van-dropdown-menu>
Page({
data: {
switchTitle1: '包郵',
switchTitle2: '團(tuán)購(gòu)',
itemTitle: '篩選',
option1: [
{ text: '全部商品', value: 0 },
{ text: '新款商品', value: 1 },
{ text: '活動(dòng)商品', value: 2 },
],
value1: 0,
},
onConfirm() {
this.selectComponent('#item').toggle();
},
onSwitch1Change({ detail }) {
this.setData({ switch1: detail });
},
onSwitch2Change({ detail }) {
this.setData({ switch2: detail });
},
});
自定義選中態(tài)顏色
通過(guò)active-color屬性可以自定義菜單標(biāo)題和選項(xiàng)的選中態(tài)顏色
<van-dropdown-menu active-color="#ee0a24">
<van-dropdown-item value="{{ value1 }}" options="{{ option1 }}" />
<van-dropdown-item value="{{ value2 }}" options="{{ option2 }}" />
</van-dropdown-menu>
向上展開(kāi)
將direction屬性值設(shè)置為up,菜單即可向上展開(kāi)
<van-dropdown-menu direction="up">
<van-dropdown-item value="{{ value1 }}" options="{{ option1 }}" />
<van-dropdown-item value="{{ value2 }}" options="{{ option2 }}" />
</van-dropdown-menu>
禁用菜單
<van-dropdown-menu>
<van-dropdown-item value="{{ value1 }}" disabled options="{{ option1 }}" />
<van-dropdown-item value="{{ value2 }}" disabled options="{{ option2 }}" />
</van-dropdown-menu>
API
DropdownMenu Props
參數(shù) |
說(shuō)明 |
類(lèi)型 |
默認(rèn)值 |
active-color |
菜單標(biāo)題和選項(xiàng)的選中態(tài)顏色 |
string
|
#1989fa
|
direction v2.0.1
|
菜單展開(kāi)方向,可選值為up
|
string
|
down
|
z-index |
菜單欄 z-index 層級(jí) |
number | string
|
10
|
duration |
動(dòng)畫(huà)時(shí)長(zhǎng),單位秒 |
number | string
|
0.2
|
overlay |
是否顯示遮罩層 |
boolean
|
true
|
close-on-click-overlay |
是否在點(diǎn)擊遮罩層后關(guān)閉菜單 |
boolean
|
true
|
close-on-click-outside v2.0.7
|
是否在點(diǎn)擊外部元素后關(guān)閉菜單 |
boolean
|
true
|
DropdownItem Props
參數(shù) |
說(shuō)明 |
類(lèi)型 |
默認(rèn)值 |
value |
當(dāng)前選中項(xiàng)對(duì)應(yīng)的 value,可以通過(guò)v-model 雙向綁定 |
number | string
|
- |
title |
菜單項(xiàng)標(biāo)題 |
string
|
當(dāng)前選中項(xiàng)文字 |
options |
選項(xiàng)數(shù)組 |
Option[]
|
[]
|
disabled |
是否禁用菜單 |
boolean
|
false
|
title-class |
標(biāo)題額外類(lèi)名 |
string
|
- |
get-container v2.2.4
|
指定掛載的節(jié)點(diǎn),用法示例
|
string | () => Element
|
- |
DropdownItem Events
事件名 |
說(shuō)明 |
回調(diào)參數(shù) |
change |
點(diǎn)擊選項(xiàng)導(dǎo)致 value 變化時(shí)觸發(fā) |
value |
open |
打開(kāi)菜單欄時(shí)觸發(fā) |
- |
opened |
打開(kāi)菜單欄且動(dòng)畫(huà)結(jié)束后觸發(fā) |
- |
close |
關(guān)閉菜單欄時(shí)觸發(fā) |
- |
opened |
關(guān)閉菜單欄且動(dòng)畫(huà)結(jié)束后觸發(fā) |
- |
DropdownItem Slots
名稱 |
說(shuō)明 |
default |
菜單內(nèi)容 |
title |
自定義標(biāo)題,不支持動(dòng)態(tài)渲染 |
DropdownItem 方法
通過(guò) ref 可以獲取到 DropdownItem 實(shí)例并調(diào)用實(shí)例方法,詳見(jiàn) 組件實(shí)例方法
方法名 |
說(shuō)明 |
參數(shù) |
返回值 |
toggle |
切換菜單展示狀態(tài),傳true 為顯示,false 為隱藏,不傳參為取反 |
show?: boolean |
- |
Option 數(shù)據(jù)結(jié)構(gòu)
鍵名 |
說(shuō)明 |
類(lèi)型 |
text |
文字 |
string
|
value |
標(biāo)識(shí)符 |
number | string
|
icon |
左側(cè) 圖標(biāo)名稱 或圖片鏈接 |
string
|
更多建議: