Vant3 Toast 輕提示

2021-09-14 13:48 更新

介紹

在頁面中間彈出黑色半透明提示,用于消息通知、加載提示、操作結(jié)果提示等場(chǎng)景。

實(shí)例演示

引入

通過以下方式來全局注冊(cè)組件,更多注冊(cè)方式請(qǐng)參考組件注冊(cè)。

import { createApp } from 'vue';
import { Toast } from 'vant';

const app = createApp();
app.use(Toast);

代碼演示

文字提示

基礎(chǔ)用法

Toast('提示內(nèi)容');

加載提示

使用 Toast.loading 方法展示加載提示,通過 forbidClick 屬性可以禁用背景點(diǎn)擊。

Toast.loading({
  message: '加載中...',
  forbidClick: true,
});

成功/失敗提示

使用 Toast.success 方法展示成功提示,使用 Toast.fail 方法展示失敗提示。

Toast.success('成功文案');
Toast.fail('失敗文案');

自定義圖標(biāo)

通過 icon 選項(xiàng)可以自定義圖標(biāo),支持傳入圖標(biāo)名稱或圖片鏈接,通過loadingType 屬性可以自定義加載圖標(biāo)類型。

自定義

Toast({
  message: '自定義圖標(biāo)',
  icon: 'like-o',
});

Toast({
  message: '自定義圖片',
  icon: 'https://img.yzcdn.cn/vant/logo.png',
});

Toast.loading({
  message: '加載中...',
  forbidClick: true,
  loadingType: 'spinner',
});

自定義位置

Toast 默認(rèn)渲染在屏幕正中位置,通過 position 屬性可以控制 Toast 展示的位置。

自定義位置

Toast({
  message: '頂部展示',
  position: 'top',
});

Toast({
  message: '底部展示',
  position: 'bottom',
});

動(dòng)態(tài)更新提示

執(zhí)行 Toast 方法時(shí)會(huì)返回對(duì)應(yīng)的 Toast 實(shí)例,通過修改實(shí)例上的 message 屬性可以實(shí)現(xiàn)動(dòng)態(tài)更新提示的效果。

動(dòng)態(tài)更新

const toast = Toast.loading({
  duration: 0,
  forbidClick: true,
  message: '倒計(jì)時(shí) 3 秒',
});

let second = 3;
const timer = setInterval(() => {
  second--;
  if (second) {
    toast.message = `倒計(jì)時(shí) ${second} 秒`;
  } else {
    clearInterval(timer);
    Toast.clear();
  }
}, 1000);

全局方法

通過 app.use 全局注冊(cè) Toast 組件后,會(huì)自動(dòng)在 app 的所有子組件上掛載 $toast 方法,便于在組件內(nèi)調(diào)用。

export default {
  mounted() {
    this.$toast('提示文案');
  },
};
Tips: 由于 setup 選項(xiàng)中無法訪問 this,因此不能使用上述方式,請(qǐng)通過 import 引入。

單例模式

Toast 默認(rèn)采用單例模式,即同一時(shí)間只會(huì)存在一個(gè) Toast,如果需要在同一時(shí)間彈出多個(gè) Toast,可以參考下面的示例:

Toast.allowMultiple();

const toast1 = Toast('第一個(gè) Toast');
const toast2 = Toast.success('第二個(gè) Toast');

toast1.clear();
toast2.clear();

修改默認(rèn)配置

通過 Toast.setDefaultOptions 函數(shù)可以全局修改 Toast 的默認(rèn)配置。

Toast.setDefaultOptions({ duration: 2000 });

Toast.setDefaultOptions('loading', { forbidClick: true });

Toast.resetDefaultOptions();

Toast.resetDefaultOptions('loading');

API

方法

方法名 說明 參數(shù) 返回值
Toast 展示提示 options | message toast 實(shí)例
Toast.loading 展示加載提示 options | message toast 實(shí)例
Toast.success 展示成功提示 options | message toast 實(shí)例
Toast.fail 展示失敗提示 options | message toast 實(shí)例
Toast.clear 關(guān)閉提示 clearAll: boolean void
Toast.allowMultiple 允許同時(shí)存在多個(gè) Toast - void
Toast.setDefaultOptions 修改默認(rèn)配置,對(duì)所有 Toast 生效。
傳入 type 可以修改指定類型的默認(rèn)配置
type | options void
Toast.resetDefaultOptions 重置默認(rèn)配置,對(duì)所有 Toast 生效。
傳入 type 可以重置指定類型的默認(rèn)配置
type void

Options

參數(shù) 說明 類型 默認(rèn)值
type 提示類型,可選值為 loading success
fail html
string text
position 位置,可選值為 top bottom string middle
message 文本內(nèi)容,支持通過\n換行 string ''
icon 自定義圖標(biāo),支持傳入圖標(biāo)名稱或圖片鏈接 string -
iconSize 圖標(biāo)大小,如 20px 2em,默認(rèn)單位為 px number | string 36px
iconPrefix 圖標(biāo)類名前綴,同 Icon 組件的 class-prefix 屬性 string van-icon
overlay 是否顯示背景遮罩層 boolean false
forbidClick 是否禁止背景點(diǎn)擊 boolean false
closeOnClick 是否在點(diǎn)擊后關(guān)閉 boolean false
closeOnClickOverlay 是否在點(diǎn)擊遮罩層后關(guān)閉 boolean false
loadingType 加載圖標(biāo)類型, 可選值為 spinner string circular
duration 展示時(shí)長(zhǎng)(ms),值為 0 時(shí),toast 不會(huì)消失 number 2000
className 自定義類名 string | Array | object -
overlayClass v3.0.4 自定義遮罩層類名 string | Array | object -
overlayStyle v3.0.4 自定義遮罩層樣式 object -
onOpened 完全展示后的回調(diào)函數(shù) Function -
onClose 關(guān)閉時(shí)的回調(diào)函數(shù) Function -
transition 動(dòng)畫類名,等價(jià)于 transition 的name屬性 string van-fade
teleport 指定掛載的節(jié)點(diǎn),用法示例 string | Element body

主題定制

樣式變量

組件提供了下列 CSS 變量,可用于自定義樣式,使用方法請(qǐng)參考 ConfigProvider 組件。

名稱 默認(rèn)值 描述
--van-toast-max-width 70% -
--van-toast-font-size var(--van-font-size-md) -
--van-toast-text-color var(--van-white) -
--van-toast-loading-icon-color var(--van-white) -
--van-toast-line-height var(--van-line-height-md) -
--van-toast-border-radius var(--van-border-radius-lg) -
--van-toast-background-color fade(var(--van-black), 70%) -
--van-toast-icon-size 36px -
--van-toast-text-min-width 96px -
--van-toast-text-padding var(--van-padding-xs) var(--van-padding-sm) -
--van-toast-default-padding var(--van-padding-md) -
--van-toast-default-width 88px -
--van-toast-default-min-height 88px -
--van-toast-position-top-distance 20% -
--van-toast-position-bottom-distance 20% -


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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)