AI教程网 - 未来以来,拥抱AI;新手入门,从AI教程网开始......

Vant DropdownMenu 下拉菜单

VANT教程 AI君 61℃

引入

import Vue from 'vue';
import { DropdownMenu, DropdownItem } from 'vant';

Vue.use(DropdownMenu);
Vue.use(DropdownItem);

代码演示

基础用法

<van-dropdown-menu>
  <van-dropdown-item v-model="value1" :options="option1" />
  <van-dropdown-item v-model="value2" :options="option2" />
</van-dropdown-menu>
export default {
  data() {
    return {
      value1: 0,
      value2: 'a',
      option1: [
        { text: '全部商品', value: 0 },
        { text: '新款商品', value: 1 },
        { text: '活动商品', value: 2 }
      ],
      option2: [
        { text: '默认排序', value: 'a' },
        { text: '好评排序', value: 'b' },
        { text: '销量排序', value: 'c' },
      ]
    }
  }
};

自定义菜单内容

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

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

自定义选中态颜色

通过active-color属性可以自定义菜单标题和选项的选中态颜色

<van-dropdown-menu active-color="#ee0a24">
  <van-dropdown-item v-model="value1" :options="option1" />
  <van-dropdown-item v-model="value2" :options="option2" />
</van-dropdown-menu>

向上展开

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

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

禁用菜单

<van-dropdown-menu>
  <van-dropdown-item v-model="value1" disabled :options="option1" />
  <van-dropdown-item v-model="value2" disabled :options="option2" />
</van-dropdown-menu>

API

DropdownMenu Props

参数 说明 类型 默认值
active-color 菜单标题和选项的选中态颜色 string #1989fa
direction v2.0.1 菜单展开方向,可选值为up string down
z-index 菜单栏 z-index 层级 number | string 10
duration 动画时长,单位秒 number | string 0.2
overlay 是否显示遮罩层 boolean true
close-on-click-overlay 是否在点击遮罩层后关闭菜单 boolean true
close-on-click-outside v2.0.7 是否在点击外部元素后关闭菜单 boolean true

DropdownItem Props

参数 说明 类型 默认值
value 当前选中项对应的 value,可以通过v-model双向绑定 number | string
title 菜单项标题 string 当前选中项文字
options 选项数组 Option[] []
disabled 是否禁用菜单 boolean false
title-class 标题额外类名 string
get-container v2.2.4 指定挂载的节点,用法示例 string | () => Element

DropdownItem Events

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

DropdownItem Slots

名称 说明
default 菜单内容
title 自定义标题,不支持动态渲染

DropdownItem 方法

通过 ref 可以获取到 DropdownItem 实例并调用实例方法,详见 组件实例方法

方法名 说明 参数 返回值
toggle 切换菜单展示状态,传true为显示,false为隐藏,不传参为取反 show?: boolean

Option 数据结构

键名 说明 类型
text 文字 string
value 标识符 number | string
icon 左侧 图标名称 或图片链接 string

转载请注明:www.ainoob.cn » Vant DropdownMenu 下拉菜单

喜欢 (5)or分享 (0)