Vant3 Toast 轻提示

介绍

在页面中间弹出黑色半透明提示,用于消息通知、加载提示、操作结果提示等场景。

实例演示

引入

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

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

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

代码演示

文字提示

基础用法

Toast(提示内容);

加载提示

使用 Toast.loading 方法展示加载提示,通过 forbidClick 属性可以禁用背景点击。

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

成功/失败提示

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

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

自定义图标

通过 icon 选项可以自定义图标,支持传入图标名称或图片链接,通过loadingType 属性可以自定义加载图标类型。

自定义

Toast({
  message: 自定义图标,
  icon: like-o,
});

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

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

自定义位置

Toast 默认渲染在屏幕正中位置,通过 position 属性可以控制 Toast 展示的位置。

自定义位置

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

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

动态更新提示

执行 Toast 方法时会返回对应的 Toast 实例,通过修改实例上的 message 属性可以实现动态更新提示的效果。

动态更新

const toast = Toast.loading({
  duration: 0,
  forbidClick: true,
  message: 倒计时 3 秒,
});

let second = 3;
const timer = setInterval(() => {
  second--;
  if (second) {
    toast.message = `倒计时 ${second} 秒`;
  } else {
    clearInterval(timer);
    Toast.clear();
  }
}, 1000);

全局方法

通过 app.use 全局注册 Toast 组件后,会自动在 app 的所有子组件上挂载 $toast 方法,便于在组件内调用。

export default {
  mounted() {
    this.$toast(提示文案);
  },
};

Tips: 由于 setup 选项中无法访问 this,因此不能使用上述方式,请通过 import 引入。

单例模式

Toast 默认采用单例模式,即同一时间只会存在一个 Toast,如果需要在同一时间弹出多个 Toast,可以参考下面的示例:

Toast.allowMultiple();

const toast1 = Toast(第一个 Toast);
const toast2 = Toast.success(第二个 Toast);

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

修改默认配置

通过 Toast.setDefaultOptions 函数可以全局修改 Toast 的默认配置。

Toast.setDefaultOptions({ duration: 2000 });

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

Toast.resetDefaultOptions();

Toast.resetDefaultOptions(loading);

API

方法

方法名说明参数返回值
Toast展示提示options | messagetoast 实例
Toast.loading展示加载提示options | messagetoast 实例
Toast.success展示成功提示options | messagetoast 实例
Toast.fail展示失败提示options | messagetoast 实例
Toast.clear关闭提示clearAll: booleanvoid
Toast.allowMultiple允许同时存在多个 Toastvoid
Toast.setDefaultOptions修改默认配置,对所有 Toast 生效。

传入 type 可以修改指定类型的默认配置

type | optionsvoid
Toast.resetDefaultOptions重置默认配置,对所有 Toast 生效。

传入 type 可以重置指定类型的默认配置

typevoid

Options

参数说明类型默认值
type提示类型,可选值为 loading success

fail html

stringtext
position位置,可选值为 top bottomstringmiddle
message文本内容,支持通过
换行
string
icon自定义图标,支持传入图标名称或图片链接string
iconSize图标大小,如 20px 2em,默认单位为 pxnumber | string36px
iconPrefix图标类名前缀,同 Icon 组件的 class-prefix 属性stringvan-icon
overlay是否显示背景遮罩层booleanfalse
forbidClick是否禁止背景点击booleanfalse
closeOnClick是否在点击后关闭booleanfalse
closeOnClickOverlay是否在点击遮罩层后关闭booleanfalse
loadingType加载图标类型, 可选值为 spinnerstringcircular
duration展示时长(ms),值为 0 时,toast 不会消失number2000
className自定义类名string | Array | object
overlayClass v3.0.4自定义遮罩层类名string | Array | object
overlayStyle v3.0.4自定义遮罩层样式object
onOpened完全展示后的回调函数Function
onClose关闭时的回调函数Function
transition动画类名,等价于 transition 的name属性stringvan-fade
teleport指定挂载的节点,用法示例string | Elementbody

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件

名称默认值描述
–van-toast-max-width70%
–van-toast-font-sizevar(–van-font-size-md)
–van-toast-text-colorvar(–van-white)
–van-toast-loading-icon-colorvar(–van-white)
–van-toast-line-heightvar(–van-line-height-md)
–van-toast-border-radiusvar(–van-border-radius-lg)
–van-toast-background-colorfade(var(–van-black), 70%)
–van-toast-icon-size36px
–van-toast-text-min-width96px
–van-toast-text-paddingvar(–van-padding-xs) var(–van-padding-sm)
–van-toast-default-paddingvar(–van-padding-md)
–van-toast-default-width88px
–van-toast-default-min-height88px
–van-toast-position-top-distance20%
–van-toast-position-bottom-distance20%

作者:冒牌SEO,如若转载,请注明出处:https://www.web176.com/vant3/18733.html

(0)
打赏 支付宝 支付宝 微信 微信
冒牌SEO冒牌SEO
上一篇 2023年4月28日
下一篇 2023年4月28日

相关推荐

发表回复

登录后才能评论