ActionSheet 上拉菜单

引入

  1. import Vue from 'vue';
  2. import { ActionSheet } from 'vant';
  3. Vue.use(ActionSheet);

代码演示

基础用法

ActionSheet通过actions数组来定义展示的选项,数组的每一项是一个对象,对象属性见文档下方表格。

  1. <van-action-sheet v-model="show" :actions="actions" @select="onSelect" />
  1. import { Toast } from 'vant';
  2. export default {
  3. data() {
  4. return {
  5. show: false,
  6. actions: [
  7. { name: '选项' },
  8. { name: '选项' },
  9. { name: '选项', subname: '描述信息' }
  10. ]
  11. };
  12. },
  13. methods: {
  14. onSelect(item) {
  15. // 默认情况下,点击选项时不会自动关闭菜单
  16. // 可以通过 close-on-click-action 属性开启自动关闭
  17. this.show = false;
  18. Toast(item.name);
  19. }
  20. }
  21. }

选项状态

选项可以设置为加载状态或禁用状态,也可以通过color设置选项颜色

  1. <van-action-sheet v-model="show" :actions="actions" />
  1. export default {
  2. data() {
  3. return {
  4. show: false,
  5. actions: [
  6. { name: '选项', color: '#07c160' },
  7. { loading: true },
  8. { name: '禁用选项', disabled: true }
  9. ]
  10. };
  11. }
  12. }

展示取消按钮

设置cancel-text属性后,会在底部展示取消按钮,点击后关闭当前菜单

  1. <van-action-sheet
  2. v-model="show"
  3. :actions="actions"
  4. cancel-text="取消"
  5. @cancel="onCancel"
  6. />
import { Toast } from 'vant';

export default {
  data() {
    return {
      show: false
    };
  },
  methods: {
    onCancel() {
      this.show = false;
      Toast('cancel');
    }
  }
}

展示描述信息

设置description属性后,会在选项上方显示描述信息

<van-action-sheet
  v-model="show"
  :actions="actions"
  description="这是一段描述信息"
/>

展示标题栏

通过设置title属性展示标题栏,同时可以使用插槽自定义菜单内容

<van-action-sheet v-model="show" title="标题">
  <p>内容</p>
</van-action-sheet>

API

Props

参数说明类型默认值
actions菜单选项Action[][]
title顶部标题string-
cancel-text取消按钮文字string-
description v2.2.8选项上方的描述信息string-
overlay是否显示遮罩层booleantrue
round v2.0.9是否显示圆角booleantrue
close-icon v2.2.13关闭图标名称或图片链接stringcross
close-on-click-action是否在点击选项后关闭booleanfalse
close-on-click-overlay是否在点击遮罩层后关闭booleantrue
lazy-render是否在显示弹层时才渲染节点booleantrue
lock-scroll是否锁定背景滚动booleantrue
duration v2.0.3动画时长,单位秒number0.3
get-container指定挂载的节点,用法示例string | () => Element-
safe-area-inset-bottom是否开启底部安全区适配,详细说明booleantrue

Events

事件名说明回调参数
select选中选项时触发,禁用或加载状态下不会触发item: 选项对应的对象, index: 选择对应的索引
cancel取消按钮点击时触发-
click-overlay点击遮罩层时触发-
open打开菜单时触发-
opened打开菜单且动画结束后触发-
close关闭菜单时触发-
closed关闭菜单且动画结束后触发-

Action 数据结构

actions属性为一个对象数组,数组中的每个对象配置一列,对象可以包含以下值:

键名说明类型
name标题string
subname二级标题string
color选项文字颜色string
className为对应列添加额外的 classany
loading是否为加载状态boolean
disabled是否为禁用状态boolean

常见问题

引入时提示 dependencies not found?

在 1.x 版本中,上拉菜单的组件名为Actionsheet,从 2.0 版本开始更名为ActionSheet,请注意区分。

ActionSheet 上拉菜单 - 图1