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

相关文章

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

一文详解Java Stream的sorted自定义排序

《一文详解JavaStream的sorted自定义排序》Javastream中的sorted方法是用于对流中的元素进行排序的方法,它可以接受一个comparator参数,用于指定排序规则,sorte... 目录一、sorted 操作的基础原理二、自定义排序的实现方式1. Comparator 接口的 Lam

如何自定义一个log适配器starter

《如何自定义一个log适配器starter》:本文主要介绍如何自定义一个log适配器starter的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求Starter 项目目录结构pom.XML 配置LogInitializer实现MDCInterceptor

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

使用Vue-ECharts实现数据可视化图表功能

《使用Vue-ECharts实现数据可视化图表功能》在前端开发中,经常会遇到需要展示数据可视化的需求,比如柱状图、折线图、饼图等,这类需求不仅要求我们准确地将数据呈现出来,还需要兼顾美观与交互体验,所... 目录前言为什么选择 vue-ECharts?1. 基于 ECharts,功能强大2. 更符合 Vue

Vue中插槽slot的使用示例详解

《Vue中插槽slot的使用示例详解》:本文主要介绍Vue中插槽slot的使用示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、插槽是什么二、插槽分类2.1 匿名插槽2.2 具名插槽2.3 作用域插槽三、插槽的基本使用3.1 匿名插槽

springboot+vue项目怎么解决跨域问题详解

《springboot+vue项目怎么解决跨域问题详解》:本文主要介绍springboot+vue项目怎么解决跨域问题的相关资料,包括前端代理、后端全局配置CORS、注解配置和Nginx反向代理,... 目录1. 前端代理(开发环境推荐)2. 后端全局配置 CORS(生产环境推荐)3. 后端注解配置(按接口

Vue 2 项目中配置 Tailwind CSS 和 Font Awesome 的最佳实践举例

《Vue2项目中配置TailwindCSS和FontAwesome的最佳实践举例》:本文主要介绍Vue2项目中配置TailwindCSS和FontAwesome的最... 目录vue 2 项目中配置 Tailwind css 和 Font Awesome 的最佳实践一、Tailwind CSS 配置1. 安