VUE自定义吐司toast

2023-10-08 03:20
文章标签 自定义 vue toast 吐司

本文主要是介绍VUE自定义吐司toast,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一个在学习vue的小白,各种折腾,最近页面需要用到toast,故查了部分资料。

使用toast有两个方式,

一个是使用第三方插件(这个网上很多,大家可以自行搜索,上个链接供大家参考https://www.npmjs.com/package/vue2-toast);

另一个方式是自定义一个toast,效果见下图:

文件目录:

index.js文件代码:

import Vue from 'vue'
import toast from './toast.vue'
// 创建组件构造器
const toastHonor = Vue.extend(toast);export default function ({text="要显示的内容",time=2000,type=undefined}={}) {return new Promise((reslove, reject) => {let toastComponent = new toastHonor({el: document.createElement('div')});toastComponent.text = text;toastComponent.time = time;toastComponent.type = type;//插入到bodydocument.body.appendChild(toastComponent.$el)// 回调函数toastComponent.close = function () {reslove();};})
}

toast.vue组件代码:

<template><transition @before-leave="beforeLeave" @after-leave="afterLeave" name="slide-fade"><div @click="hideToast" v-show="isShow" class="toast"><div class="main"><div v-if="type" class="icon-box" flex="main:center cross:center"><i v-show="type==='succeed'" class="iconfont icon-ic_select_simple font30 orange2"></i></div><div class="text">{{text}}</div></div></div></transition></template><script>export default {props: {text: {type: String},time: {type: Number},type: {type: String},},mounted() {this.$nextTick(() => {this.isShow = true;this.timer = setTimeout(() => {this.hideToast();}, this.time)});},data() {return {isShow: false,timer: null,};},methods: {hideToast() {this.isShow = false;clearTimeout(this.timer);this.timer = null;},beforeLeave() {this.close();},afterLeave() {document.body.removeChild(this.$el);}}};</script><style scoped>.toast {position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;z-index: 9999;}.main {display: inline-block;padding: 0.5rem 1rem;min-width: 10vm;/*max-width: 4.4rem;*/border-radius: .5rem;background-color: rgba(66, 63, 56, 0.8);}.icon-box {margin: 0 auto .1rem;width: .7rem;height: .7rem;border-radius: 50%;overflow: hidden;background-color: #fff;}.text {font-family: 'Avenir', Helvetica, Arial, sans-serif;font-size: 4vw;/*line-height: 7.5vw;*/color: #fff;}.slide-fade-enter-active {transition: all 0.3s ease;}.slide-fade-leave-active {transition: all 0.3s ease;}.slide-fade-enter {transform: translate(-50%, -1.2rem);opacity: 0;}.slide-fade-leave-to {transform: translate(-50%, 0.5rem);opacity: 0;}</style>

使用方式:

在组件中导入

import toast from "../../components/myToast/index.js";

组件代码--页面部分,一个按钮点击事件触发吐司:

<button @click="showToast">点击显示我的吐司</button>

事件调用方式:

methods:{showToast(){toast({text:"我是吐司,我显示3s",time:3000}).then(()=>{console.log("关闭后执行");}).catch(()=>{})}}

可以根据项目需求修改toast组件,达到项目要求。

大部分内容参考https://blog.csdn.net/weixin_37745920/article/details/101371944。大家可以参照。

这篇关于VUE自定义吐司toast的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/162332

相关文章

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

基于Spring实现自定义错误信息返回详解

《基于Spring实现自定义错误信息返回详解》这篇文章主要为大家详细介绍了如何基于Spring实现自定义错误信息返回效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录背景目标实现产出背景Spring 提供了 @RestConChina编程trollerAdvice 用来实现 HTT

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

SpringBoot自定义注解如何解决公共字段填充问题

《SpringBoot自定义注解如何解决公共字段填充问题》本文介绍了在系统开发中,如何使用AOP切面编程实现公共字段自动填充的功能,从而简化代码,通过自定义注解和切面类,可以统一处理创建时间和修改时间... 目录1.1 问题分析1.2 实现思路1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3

dubbo3 filter(过滤器)如何自定义过滤器

《dubbo3filter(过滤器)如何自定义过滤器》dubbo3filter(过滤器)类似于javaweb中的filter和springmvc中的intercaptor,用于在请求发送前或到达前进... 目录dubbo3 filter(过滤器)简介dubbo 过滤器运行时机自定义 filter第一种 @A