Vue自定义全局弹出提示(Toast)组件

20 篇文章 0 订阅
16 篇文章 0 订阅
这篇博客介绍了如何在Vue中创建一个自定义的Toast组件,用于显示弹出提示信息。首先,在index.vue中定义了组件的模板、样式和数据。接着,在index.js中编写核心逻辑,包括注册组件、设置默认参数、生成Vue子类实例并挂载到DOM中,以及实现定时消失功能。最后,在main.js中全局注册组件,使得在应用的任何页面都可以通过`this.$Toast()`来调用。
摘要由CSDN通过智能技术生成

首先创建文件夹和文件

在index.vue里面写弹出的功能和样式

<template>
	<div class="toast">{{text}}</div>
</template>

<script>
	export default {
	  name: 'toast',
	  data(){
		  return{
			  text:""
		  }
	  }
	}
</script>

<style>
	.toast{
		background-color: #C0C0C0;
		color: #FFFFFF;
		margin: auto auto;
		top:50%;
		left: 50%;
		padding:20px;
		position: absolute;
		border-radius: 10px;
		font-size: 20px;
	}
</style>

然后在index.js中写核心的处理逻辑

import toast from './index.vue'

export default {
	// 注册Toast
	install(Vue) {
		Vue.prototype.$Toast = (text, opts) => {
			// 设置默认参数,可设置多个
			let defaultOpts = {
				duration: 2000
			}
			opts = Object.assign(defaultOpts, opts);
			// 生成一个Vue的子类
			let toastTpl = Vue.extend(toast);
			// 生成一个该子类的实例
			let tpl = new toastTpl().$mount();
			// 并将此div加入全局挂载点内部
			document.body.appendChild(tpl.$el);
			// 修改提示语
			tpl.text = text;
			// 定时消失
			setTimeout(() => {
				document.body.removeChild(tpl.$el);
			}, opts.duration)
		}
	}
}

然后在main.js中注册组件

然后就可以在所有页面中通过 this.$Toast()来调用了

 最终效果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值