• DropdownMenu 下拉菜单
    • 引入
  • 代码演示
    • 基础用法
    • 自定义菜单内容
    • 向上展开
    • 禁用菜单
  • API
    • DropdownMenu Props
    • DropdownItem Props
    • DropdownItem Events
    • DropdownItem 方法

    DropdownMenu 下拉菜单

    引入

    1. import { DropdownMenu, DropdownItem } from 'vant';
    2. Vue.use(DropdownMenu).use(DropdownItem);

    代码演示

    基础用法

    1. <van-dropdown-menu>
    2. <van-dropdown-item v-model="value1" :options="option1" />
    3. <van-dropdown-item v-model="value2" :options="option2" />
    4. </van-dropdown-menu>
    1. export default {
    2. data() {
    3. return {
    4. value1: 0,
    5. value2: 'a',
    6. option1: [
    7. { text: '全部商品', value: 0 },
    8. { text: '新款商品', value: 1 },
    9. { text: '活动商品', value: 2 }
    10. ],
    11. option2: [
    12. { text: '默认排序', value: 'a' },
    13. { text: '好评排序', value: 'b' },
    14. { text: '销量排序', value: 'c' },
    15. ]
    16. }
    17. }
    18. };

    自定义菜单内容

    通过插槽可以自定义DropdownItem的内容,此时需要使用实例上的toggle方法手动控制菜单的显示

    1. <van-dropdown-menu>
    2. <van-dropdown-item v-model="value" :options="option" />
    3. <van-dropdown-item title="筛选" ref="item">
    4. <van-switch-cell v-model="switch1" title="包邮" />
    5. <van-switch-cell v-model="switch2" title="团购" />
    6. <van-button block type="info" @click="onConfirm">确认</van-button>
    7. </van-dropdown-item>
    8. </van-dropdown-menu>
    1. export default {
    2. data() {
    3. return {
    4. value: 0,
    5. switch1: false,
    6. switch2: false,
    7. option: [
    8. { text: '全部商品', value: 0 },
    9. { text: '新款商品', value: 1 },
    10. { text: '活动商品', value: 2 }
    11. ]
    12. }
    13. },
    14. methods: {
    15. onConfirm() {
    16. this.$refs.item.toggle();
    17. }
    18. }
    19. };

    向上展开

    direction属性值设置为up,菜单即可向上展开

    1. <van-dropdown-menu direction="up">
    2. <van-dropdown-item v-model="value1" :options="option1" />
    3. <van-dropdown-item v-model="value2" :options="option2" />
    4. </van-dropdown-menu>

    禁用菜单

    1. <van-dropdown-menu>
    2. <van-dropdown-item v-model="value1" disabled :options="option1" />
    3. <van-dropdown-item v-model="value2" disabled :options="option2" />
    4. </van-dropdown-menu>

    API

    DropdownMenu Props

    参数说明类型默认值版本
    active-color菜单标题和选项的选中态颜色String#1989fa-
    z-index菜单栏 z-index 层级Number10-
    duration动画时长,单位秒Number0.22.0.0
    direction菜单展开方向,可选值为upStringdown2.0.1
    overlay是否显示遮罩层Booleantrue-
    close-on-click-overlay是否在点击遮罩层后关闭菜单Booleantrue-

    DropdownItem Props

    参数说明类型默认值版本
    value当前选中项对应的 value,可以通过v-model双向绑定String | Number--
    title菜单项标题String当前选中项文字-
    options选项数组Array[]-
    disabled是否禁用菜单Booleanfalse-
    title-class标题额外类名String--

    DropdownItem Events

    事件名说明回调参数
    change点击选项导致 value 变化时触发value
    open打开菜单栏时触发-
    opened打开菜单栏且动画结束后触发-
    close关闭菜单栏时触发-

    DropdownItem 方法

    通过 ref 可以获取到 DropdownItem 实例并调用实例方法

    方法名参数返回值介绍
    toggleshow: boolean-切换菜单是否展示

    DropdownMenu 下拉菜单 - 图1