ActionSheet 动作面板

引入

通过以下方式来全局注册组件,更多注册方式请参考。

基础用法

动作面板通过 属性来定义选项,actions 属性是一个由对象构成的数组,数组中的每个对象配置一列,对象格式见文档下方表格。

  1. <van-cell is-link title="基础用法" @click="show = true" />
  2. <van-action-sheet v-model:show="show" :actions="actions" @select="onSelect" />
  1. import { ref } from 'vue';
  2. import { Toast } from 'vant';
  3. export default {
  4. setup() {
  5. const show = ref(false);
  6. const actions = [
  7. { name: '选项一' },
  8. { name: '选项二' },
  9. { name: '选项三' },
  10. ];
  11. const onSelect = (item) => {
  12. // 可以通过 close-on-click-action 属性开启自动收起
  13. show.value = false;
  14. Toast(item.name);
  15. };
  16. return {
  17. show,
  18. actions,
  19. onSelect,
  20. };
  21. },
  22. };

展示取消按钮

  1. import { ref } from 'vue';
  2. import { Toast } from 'vant';
  3. export default {
  4. const show = ref(false);
  5. const actions = [
  6. { name: '选项一' },
  7. { name: '选项二' },
  8. { name: '选项三' },
  9. ];
  10. const onCancel = () => Toast('取消');
  11. return {
  12. show,
  13. actions,
  14. onCancel,
  15. };
  16. };

通过 description 可以在菜单顶部显示描述信息,通过选项的 subname 属性可以在选项文字的右侧展示描述信息。

  1. <van-action-sheet
  2. v-model:show="show"
  3. :actions="actions"
  4. cancel-text="取消"
  5. description="这是一段描述信息"
  6. close-on-click-action
  7. />

选项状态

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

  1. <van-action-sheet
  2. v-model:show="show"
  3. :actions="actions"
  4. cancel-text="取消"
  5. close-on-click-action
  6. />
  1. import { ref } from 'vue';
  2. export default {
  3. setup() {
  4. const show = ref(false);
  5. const actions = [
  6. { name: '着色选项', color: '#ee0a24' },
  7. { name: '禁用选项', disabled: true },
  8. { name: '加载选项', loading: true },
  9. ];
  10. return {
  11. show,
  12. actions,
  13. };
  14. },

自定义面板

Props

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

Events

Slots

类型定义

组件导出以下类型定义:

  1. import type { ActionSheetAction } from 'vant';