# DropdownMenu ### Install ```js import Vue from 'vue'; import { DropdownMenu, DropdownItem } from 'vant'; Vue.use(DropdownMenu); Vue.use(DropdownItem); ``` ## Usage ### Basic Usage ```html ``` ```js export default { data() { return { value1: 0, value2: 'a', option1: [ { text: 'Option1', value: 0 }, { text: 'Option2', value: 1 }, { text: 'Option3', value: 2 }, ], option2: [ { text: 'Option A', value: 'a' }, { text: 'Option B', value: 'b' }, { text: 'Option C', value: 'c' }, ], }; }, }; ``` ### Custom Content ```html
Confirm
``` ```js export default { data() { return { value: 0, switch1: false, switch2: false, option: [ { text: 'Option1', value: 0 }, { text: 'Option2', value: 1 }, { text: 'Option3', value: 2 }, ], }; }, methods: { onConfirm() { this.$refs.item.toggle(); }, }, }; ``` ### Custom Active Color Use `active-color` prop to custom active color of the title and options. ```html ``` ### Expand Direction ```html ``` ### Disabled ```html ``` ## API ### DropdownMenu Props | Attribute | Description | Type | Default | | --- | --- | --- | --- | | active-color | Active color of title and option | _string_ | `#ee0a24` | | direction | Expand direction, can be set to `up` | _string_ | `down` | | z-index | z-index of menu item | _number \| string_ | `10` | | duration | Transition duration, unit second | _number \| string_ | `0.2` | | overlay | Whether to show overlay | _boolean_ | `true` | | close-on-click-overlay | Whether to close when overlay is clicked | _boolean_ | `true` | | close-on-click-outside | Whether to close when outside is clicked | _boolean_ | `true` | ### DropdownItem Props | Attribute | Description | Type | Default | | --- | --- | --- | --- | | value | Value of current option,can use `v-model` | _number \| string_ | - | | title | Item title | _string_ | Text of selected option | | options | Options | _Option[]_ | `[]` | | disabled | Whether to disable dropdown item | _boolean_ | `false` | | lazy-render `v2.8.5` | Whether to lazy render util opened | _boolean_ | `true` | | title-class | Title class | _string_ | - | | get-container | Return the mount node for menu | _string \| () => Element_ | - | ### DropdownItem Events | Event | Description | Arguments | | ------ | --------------------------------------- | --------- | | change | Emitted select option and value changed | value | | open | Emitted when opening menu | - | | close | Emitted when closing menu | - | | opened | Emitted when menu is opened | - | | closed | Emitted when menu is closed | - | ### DropdownItem Slots | Name | Description | | ------- | ------------ | | default | Content | | title | Custom title | ### DropdownItem Methods Use [ref](https://vuejs.org/v2/api/#ref) to get DropdownItem instance and call instance methods. | Name | Description | Attribute | Return value | | ------ | -------------- | --------------- | ------------ | | toggle | Toggle display | _show: boolean_ | - | ### Data Structure of Option | Key | Description | Type | | ----- | ----------- | ------------------ | | text | Text | _string_ | | value | Value | _number \| string_ | | icon | Left icon | _string_ | ### Less Variables How to use: [Custom Theme](#/en-US/theme). | Name | Default Value | Description | | --- | --- | --- | | @dropdown-menu-height | `48px` | - | | @dropdown-menu-background-color | `@white` | - | | @dropdown-menu-box-shadow | `0 2px 12px fade(@gray-7, 12)` | - | | @dropdown-menu-title-font-size | `15px` | - | | @dropdown-menu-title-text-color | `@text-color` | - | | @dropdown-menu-title-active-text-color | `@red` | - | | @dropdown-menu-title-disabled-text-color | `@gray-6` | - | | @dropdown-menu-title-padding | `0 @padding-xs` | - | | @dropdown-menu-title-line-height | `@line-height-lg` | - | | @dropdown-menu-option-active-color | `@red` | - | | @dropdown-menu-content-max-height | `80%` | - | | @dropdown-item-z-index | `10` | - |