以一个自定义对话框为例子,首先先创建一个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>