uniapp 实现Toast轻提示!

一、在components 文件夹下新建Toast 文件, 包含Toast.vue 和index.js

Toast.vue

复制代码
<template>
	<view class="context" v-show="isshow">
		<text class="tip">{{ text }}</text>
	</view>
</template>
<script>
	export default {
		name: "Toast",
		props: {
			isshow: {
				type: Boolean,
			},
			text: {
				type: String,
			},
		},
		watch: {
			isshow(val) {
				if (val === true) {
					setTimeout(() => {
						this.isshow = false;
					}, 2000);
				}
			},
		},
	};
</script>
<style lang="scss" scoped>
	.context {
		position: absolute;
		top: 0;
		width: 100%;
		height: 100%;
		z-index: 100;
		display: flex;
		justify-content: center;
		align-items: center;

		.tip {
			background-color: rgba(40, 40, 40, 0.8);
			color: aliceblue;
			font-size: 0.6rem;
			padding: 20rpx 10rpx;
			border-radius: 10rpx;
			text-align: center;
			max-width: 60%;
		}
	}
</style>

index.js

复制代码
import Toast from "./Toast.vue";
let NewToast = {
	install: function(Vue) {
		//创建vue插件,官方地址https://cn.vuejs.org/v2/guide/plugins.html
		let newToast = Vue.extend(Toast); //创建vue构造器,官方地址https://cn.vuejs.org/v2/api/#Vue-extend
		let toast = new newToast(); //创建实例
		document.body.appendChild(toast.$mount().$el); //挂载
		Vue.prototype.$Toast = function(text) {
			toast.isshow = true; // 传入props
			toast.text = text; // 传入props
		};
	},
};
export {
	NewToast
};

二、在入口文件main.js文件中引入

复制代码
import {
	NewToast
} from "@/components/Toast/index.js";

Vue.use(NewToast);

三、在页面中使用

复制代码
this.$Toast("this is toast!");
相关推荐
菜鸟una1 小时前
【微信小程序 + map组件】自定义地图气泡?原生气泡?如何抉择?
前端·vue.js·程序人生·微信小程序·小程序·typescript
昔人'3 小时前
`list-style-type: decimal-leading-zero;`在有序列表`<ol></ol>` 中将零添加到一位数前面
前端·javascript·html
岁月宁静8 小时前
深度定制:在 Vue 3.5 应用中集成流式 AI 写作助手的实践
前端·vue.js·人工智能
2501_915909069 小时前
“绑定 HTTPS” 的工程全流程 从证书配置到真机验证与故障排查
网络协议·http·ios·小程序·https·uni-app·iphone
saadiya~9 小时前
ECharts 实时数据平滑更新实践(含 WebSocket 模拟)
前端·javascript·echarts
百锦再9 小时前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
2501_9159184110 小时前
iOS 混淆实战 多工具组合完成 IPA 混淆、加固与工程化落地(iOS混淆|IPA加固|无源码混淆|Ipa Guard|Swift Shield)
android·ios·小程序·https·uni-app·iphone·webview
Sheldon一蓑烟雨任平生10 小时前
Vue3 表单输入绑定
vue.js·vue3·v-model·vue3 表单输入绑定·表单输入绑定·input和change区别·vue3 双向数据绑定
瓜瓜怪兽亚11 小时前
前端基础知识---Ajax
前端·javascript·ajax
AI智能研究院11 小时前
(四)从零学 React Props:数据传递 + 实战案例 + 避坑指南
前端·javascript·react.js