Vant Dialog 彈出框

2022-05-31 13:32 更新

介紹

彈出模態(tài)框,常用于消息提示、消息確認(rèn)、在當(dāng)前頁面內(nèi)完成特定的交互操作

彈出框組件支持函數(shù)調(diào)用和組件調(diào)用兩種方式

函數(shù)調(diào)用

Dialog 是一個(gè)函數(shù)而不是組件,因此可以直接調(diào)用,展示對(duì)應(yīng)的提示彈窗

import { Dialog } from 'vant';

Dialog({ message: '提示' });

組件調(diào)用

通過組件調(diào)用 Dialog 時(shí),可以通過下面的方式進(jìn)行注冊(cè)

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

// 全局注冊(cè)
Vue.use(Dialog);

// 局部注冊(cè)
export default {
  components: {
    [Dialog.Component.name]: Dialog.Component
  }
}

代碼演示

消息提示

用于提示一些消息,只包含一個(gè)確認(rèn)按鈕

Dialog.alert({
  title: '標(biāo)題',
  message: '彈窗內(nèi)容'
}).then(() => {
  // on close
});

Dialog.alert({
  message: '彈窗內(nèi)容'
}).then(() => {
  // on close
});

消息確認(rèn)

用于確認(rèn)消息,包含取消和確認(rèn)按鈕

Dialog.confirm({
  title: '標(biāo)題',
  message: '彈窗內(nèi)容'
}).then(() => {
  // on confirm
}).catch(() => {
  // on cancel
});

異步關(guān)閉

function beforeClose(action, done) {
  if (action === 'confirm') {
    setTimeout(done, 1000);
  } else {
    done();
  }
}

Dialog.confirm({
  title: '標(biāo)題',
  message: '彈窗內(nèi)容',
  beforeClose
});

全局方法

引入 Dialog 組件后,會(huì)自動(dòng)在 Vue 的 prototype 上掛載 $dialog 方法,在所有組件內(nèi)部都可以直接調(diào)用此方法

export default {
  mounted() {
    this.$dialog.alert({
      message: '彈窗內(nèi)容'
    });
  }
}

組件調(diào)用

如果需要在彈窗內(nèi)嵌入組件或其他自定義內(nèi)容,可以使用組件調(diào)用的方式

<van-dialog v-model="show" title="標(biāo)題" show-cancel-button>
  <img src="https://img.yzcdn.cn/vant/apple-3.jpg" rel="external nofollow" >
</van-dialog>
export default {
  data() {
    return {
      show: false
    };
  }
}

API

方法

方法名說明參數(shù)返回值
Dialog展示彈窗optionsPromise
Dialog.alert展示消息提示彈窗optionsPromise
Dialog.confirm展示消息確認(rèn)彈窗optionsPromise
Dialog.setDefaultOptions修改默認(rèn)配置,對(duì)所有 Dialog 生效optionsvoid
Dialog.resetDefaultOptions重置默認(rèn)配置,對(duì)所有 Dialog 生效-void
Dialog.close關(guān)閉彈窗-void

Options

通過函數(shù)調(diào)用 Dialog 時(shí),支持傳入以下選項(xiàng):

參數(shù)說明類型默認(rèn)值
title標(biāo)題string-
width v2.2.7彈窗寬度,默認(rèn)單位為pxnumber | string320px
message文本內(nèi)容,支持通過\n換行string-
messageAlign內(nèi)容對(duì)齊方式,可選值為left rightstringcenter
className自定義類名any-
showConfirmButton是否展示確認(rèn)按鈕booleantrue
showCancelButton是否展示取消按鈕booleanfalse
confirmButtonText確認(rèn)按鈕文案string確認(rèn)
confirmButtonColor確認(rèn)按鈕顏色string#1989fa
cancelButtonText取消按鈕文案string取消
cancelButtonColor取消按鈕顏色stringblack
overlay是否展示遮罩層booleantrue
overlayClass v2.2.7自定義遮罩層類名string-
overlayStyle v2.2.7自定義遮罩層樣式object-
closeOnPopstate v2.0.5是否在頁面回退時(shí)自動(dòng)關(guān)閉booleanfalse
closeOnClickOverlay是否在點(diǎn)擊遮罩層后關(guān)閉彈窗booleanfalse
lockScroll是否鎖定背景滾動(dòng)booleantrue
beforeClose關(guān)閉前的回調(diào)函數(shù),
調(diào)用 done() 后關(guān)閉彈窗,
調(diào)用 done(false) 阻止彈窗關(guān)閉
(action, done) => void-
transition v2.2.6動(dòng)畫類名,等價(jià)于 transition 的name屬性string-
getContainer指定掛載的節(jié)點(diǎn),用法示例string | () => Elementbody

Props

通過組件調(diào)用 Dialog 時(shí),支持以下 Props:

參數(shù)說明類型默認(rèn)值
v-model是否顯示彈窗boolean-
title標(biāo)題string-
width v2.2.7彈窗寬度,默認(rèn)單位為pxnumber | string320px
message文本內(nèi)容,支持通過\n換行string-
message-align內(nèi)容對(duì)齊方式,可選值為left rightstringcenter
show-confirm-button是否展示確認(rèn)按鈕booleantrue
show-cancel-button是否展示取消按鈕booleanfalse
confirm-button-text確認(rèn)按鈕文案string確認(rèn)
confirm-button-color確認(rèn)按鈕顏色string#1989fa
cancel-button-text取消按鈕文案string取消
cancel-button-color取消按鈕顏色stringblack
overlay是否展示遮罩層booleantrue
overlay-class v2.2.7自定義遮罩層類名string-
overlay-style v2.2.7自定義遮罩層樣式object-
close-on-popstate v2.0.5是否在頁面回退時(shí)自動(dòng)關(guān)閉booleanfalse
close-on-click-overlay是否在點(diǎn)擊遮罩層后關(guān)閉彈窗booleanfalse
lazy-render是否在顯示彈層時(shí)才渲染節(jié)點(diǎn)booleantrue
lock-scroll是否鎖定背景滾動(dòng)booleantrue
before-close關(guān)閉前的回調(diào)函數(shù),
調(diào)用 done() 后關(guān)閉彈窗,
調(diào)用 done(false) 阻止彈窗關(guān)閉
(action, done) => void-
transition v2.2.6動(dòng)畫類名,等價(jià)于 transtion 的name屬性string-
get-container指定掛載的節(jié)點(diǎn),用法示例string | () => Element-

Events

通過組件調(diào)用 Dialog 時(shí),支持以下事件:

事件說明回調(diào)參數(shù)
confirm點(diǎn)擊確認(rèn)按鈕時(shí)觸發(fā)-
cancel點(diǎn)擊取消按鈕時(shí)觸發(fā)-
open打開彈窗時(shí)觸發(fā)-
opened打開彈窗且動(dòng)畫結(jié)束后觸發(fā)-
close關(guān)閉彈窗時(shí)觸發(fā)-
closed關(guān)閉彈窗且動(dòng)畫結(jié)束后觸發(fā)-

Slots

通過組件調(diào)用 Dialog 時(shí),支持以下插槽:

名稱說明
default自定義內(nèi)容
title自定義標(biāo)題


實(shí)例演示

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)