Uniapp 自定义组件的封装和使用

该文章展示了如何创建一个名为message.vue的自定义对话框组件,利用uni-popup实现通用弹窗功能。组件包含一个uni-card,显示传入的文本标题,并在外部组件中通过ref引用调用show方法来显示和控制对话框。当对话框关闭时,会清除定时器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以一个自定义对话框为例子,首先先创建一个message.vue。

<template>
	<view>
		<!-- 通用弹窗 -->
		<uni-popup ref="message" style="pointer-events: all;zoom: 0.4;z-index: 999999;" @change="messageChange">
			<uni-card>
				<view class="uni-flex uni-column" style="padding: 50px;">
					<text
						style="font-size: 40px;color: black;width: 100%;height: 100%;align-items: center;justify-content: center;">{{toastTitle}}</text>
				</view>
			</uni-card>
		</uni-popup>
	</view>
</template>

<script>
	var closeDialog;
	export default {
		name: 'message',
		data() {
			return{
				toastTitle: ""
			}
		},
		methods: {
			show(str) {
				this.toastTitle = str;
				this.$refs.message.open();
			},
			messageChange(event) {
				if (!event.show) { //被关闭
					clearInterval(closeDialog);
				}
			},
		},
	}
</script>

<style>
</style>

使用的时候需要在对应的组件中引入对应的组件。

<template>
	<view>
        <message ref="message"></message>
	</view>
</template>
<script>
	import message from "@/components/message.vue"
    export default {
        data() {
			return{
            //...
            }
        },
        components:{
			message //引用对应的组件,这里的message需要与标签中的message对应。
		},
        methods: {
            this.$refs.message.show(str);//这里的message需要与ref中的message对应,这样就可以调用到message.vue中的show方法了。
        }    
    }
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值