Vant ActionSheet 上拉菜單

2022-05-31 13:32 更新

引入

import Vue from 'vue';
import { ActionSheet } from 'vant';

Vue.use(ActionSheet);

代碼演示

基礎(chǔ)用法

ActionSheet通過actions數(shù)組來定義展示的選項,數(shù)組的每一項是一個對象,對象屬性見文檔下方表格。

<van-action-sheet v-model="show" :actions="actions" @select="onSelect" />
import { Toast } from 'vant';

export default {
  data() {
    return {
      show: false,
      actions: [
        { name: '選項' },
        { name: '選項' },
        { name: '選項', subname: '描述信息' }
      ]
    };
  },
  methods: {
    onSelect(item) {
      // 默認(rèn)情況下點擊選項時不會自動收起
      // 可以通過 close-on-click-action 屬性開啟自動收起
      this.show = false;
      Toast(item.name);
    }
  }
}

展示取消按鈕

設(shè)置cancel-text屬性后,會在底部展示取消按鈕,點擊后關(guān)閉當(dāng)前菜單

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

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

展示描述信息

設(shè)置description屬性后,會在選項上方顯示描述信息

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

選項狀態(tài)

可以將選項設(shè)置為加載狀態(tài)或禁用狀態(tài),或者通過color設(shè)置選項顏色

<van-action-sheet
  v-model="show"
  :actions="actions"
  cancel-text="取消"
  @cancel="onCancel"
/>
export default {
  data() {
    return {
      show: false,
      actions: [
        { name: '選項', color: '#07c160' },
        { loading: true },
        { name: '禁用選項', disabled: true }
      ]
    };
  }
}

自定義面板

通過插槽可以自定義菜單的展示內(nèi)容,同時可以使用title屬性展示標(biāo)題欄

<van-action-sheet v-model="show" title="標(biāo)題">
  <div class="content">內(nèi)容</div>
</van-action-sheet>

<style>
.content {
  padding: 16px 16px 160px;
}
</style>

API

Props

參數(shù)說明類型默認(rèn)值
actions菜單選項Action[][]
title頂部標(biāo)題string-
cancel-text取消按鈕文字string-
description v2.2.8選項上方的描述信息string-
close-icon v2.2.13關(guān)閉 圖標(biāo)名稱 或圖片鏈接stringcross
duration v2.0.3動畫時長,單位秒number | string0.3
round v2.0.9是否顯示圓角booleantrue
overlay是否顯示遮罩層booleantrue
lock-scroll是否鎖定背景滾動booleantrue
lazy-render是否在顯示彈層時才渲染節(jié)點booleantrue
close-on-click-action是否在點擊選項后關(guān)閉booleanfalse
close-on-click-overlay是否在點擊遮罩層后關(guān)閉booleantrue
safe-area-inset-bottom是否開啟 底部安全區(qū)適配booleantrue
get-container指定掛載的節(jié)點,用法示例string | () => Element-

Action 數(shù)據(jù)結(jié)構(gòu)

actions屬性為一個對象數(shù)組,數(shù)組中的每個對象配置一列,對象可以包含以下值:

鍵名說明類型
name標(biāo)題string
subname二級標(biāo)題string
color選項文字顏色string
className為對應(yīng)列添加額外的 classany
loading是否為加載狀態(tài)boolean
disabled是否為禁用狀態(tài)boolean

Events

事件名說明回調(diào)參數(shù)
select選中選項時觸發(fā),禁用或加載狀態(tài)下不會觸發(fā)item: 選項對應(yīng)的對象, index: 選擇對應(yīng)的索引
cancel取消按鈕點擊時觸發(fā)-
click-overlay點擊遮罩層時觸發(fā)-
open打開菜單時觸發(fā)-
opened打開菜單且動畫結(jié)束后觸發(fā)-
close關(guān)閉菜單時觸發(fā)-
closed關(guān)閉菜單且動畫結(jié)束后觸發(fā)-

常見問題

引入時提示 dependencies not found?

在 1.x 版本中,上拉菜單的組件名為Actionsheet,從 2.0 版本開始更名為ActionSheet,請注意區(qū)分。


實例演示

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號