element-plus中的message弹窗提示消息很好用,挂载在全局上,不需要引入组件,只需$message即可调用使用,但是因为样式固定,故需要一种可以全局使用的自定义组件的调用方式,同样实现只需要一行代码即可调用组件,无需引入。
首先,先写一个需要全局调用的组件,当然要接收一些参数,需要使用到vue3提供的defineProps方法,例如:
<script setup>
import { ElDialog } from "element-plus"
import { ref } from "vue"
const showCustomMessage = ref(true)
const props = defineProps({
type: {
type: String,
default: "success"
},
content: {
type: String,
default: "提示内容"
},
duration: {
type: Number,
default: 2000
}
})
setTimeout(() => {
showCustomMessage.value = false
}, props.duration)
</script>
<template>
<div>
<el-dialog
v-model="showCustomMessage"
:show-close="false"
align-center
destroy-on-close
center
>
<div>
{{ props.content }}
</div>
</el-dialog>
</div>
</template>
<style scoped lang="less">
:deep(.el-dialog) {
width: auto;
height: auto;
.el-dialog__header {
padding: 0;
margin-right: 0;
}
.el-dialog__body {
padding: 0.8rem 1.4rem;
display: flex;
align-items: center;
justify-content: center;
> div {
color: #000;
font-size: 0.24rem;
font-weight: 500;
}
}
}
</style>
以上则是使用了element-plus的el-dialog当然也可以不用,该组件接收参数:type,content,duration
之后再创建一个js文件,用于将组件调用并开放方法,其中index.vue就是上述创建的组件文件,例如:
// 实现使用函数调用组件的逻辑
// 引入 创建虚拟节点 和渲染方法
import { createVNode, render } from "vue"
// 引入信息提示组件
import customMessage from "./index.vue"
// 准备dom容器
const div = document.createElement("div")
// 添加到body上
document.body.appendChild(div)
export default ({ type, content, duration = 2000 }) => {
// 实现:根据MessageMain.vue渲染消息提示
// 1. 导入组件
// 2. 根据组件创建虚拟节点 第一个参数为要创建的虚拟节点 第二个参数为props的参数
const vnode = createVNode(customMessage, { type, content, duration })
// 3. 准备一个DOM容器
// 4. 把虚拟节点渲染DOM容器中
render(vnode, div)
// 5. 等待duration时间后,删除DOM容器中的内容
setTimeout(() => {
render(null, div)
}, duration + 500)
}
以上在export default开放的方法中接收type, content, duration,且在创建虚拟节点时传入,也就是createVNode(customMessage, { type, content, duration }),这样type,content,duration就可以传给组件
之后在main.js文件中,import进来,并使用app.provide挂载在全局出去:
import customMessage from "@/components/customMessage/index.js"; // 公共消息弹窗组件,自定义
app.provide("$customMessage", customMessage)之后想要调用的话即可在需要的vue中,使用
import { inject } from "vue"
const customMessage = inject("$customMessage")
customMessage({
type: "error",
content: "失败",
duration: 4000
})至此可实现跟element-plus中$message一样的功能
《华纳圣淘沙公司开户流程全解析》→ 官方顾问一对一指导??? 安全联系:183第三段8890第四段9465
《华纳圣淘沙开户步骤详解》→ 」专属通道快速办理??? 安全联系:183第三段8890第四段9465
《华纳圣淘沙账户注册指南》→ 扫码获取完整资料清单?「微?? 安全联系:183第三段8890第四段9465
《新手开通华纳圣淘沙公司账户指南》→ 限时免费咨询开放??? 安全联系:183第三段8890第四段9465
《华纳圣淘沙企业开户标准流程》→ 资深顾问实时解答疑问??? 安全联系:183第三段8890第四段9465
《华纳圣淘沙开户步骤全景图》→ 点击获取极速开户方案??? 安全联系:183第三段8890第四段9465
《华纳圣淘沙账户创建全流程手册》→ 预约顾问免排队服务?9?? 安全联系:183第三段8890第四段9465 《从零开通华纳圣淘沙公司账户》→ 添加客服领取开户工具包?? 安全联系:183第三段8890第四段9465
《官方授权:华纳圣淘沙开户流程》→ 认证顾问全程代办?」?? 安全联系:183第三段8890第四段9465
《华纳圣淘沙开户说明书》→立即联系获取电子版文件??? 安全联系:183第三段8890第四段9465
华纳圣淘沙开户步骤详解(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司开户流程全解析(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司账户注册指南(183-8890-9465—?薇-STS5099【6011643】
新手如何开通华纳圣淘沙公司账户(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙企业开户标准流程(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司开户:从零到一(183-8890-9465—?薇-STS5099【6011643】
官方指南:华纳圣淘沙公司开户流程(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司开户流程说明书(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙开户步骤详解(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司开户流程全解析(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司账户注册指南(183-8890-9465—?薇-STS5099【6011643】
新手如何开通华纳圣淘沙公司账户(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙企业开户标准流程(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司开户:从零到一(183-8890-9465—?薇-STS5099【6011643】
官方指南:华纳圣淘沙公司开户流程(183-8890-9465—?薇-STS5099【6011643】
华纳圣淘沙公司开户流程说明书(183-8890-9465—?薇-STS5099【6011643】
东方明珠客服开户联系方式【182-8836-2750—】?μ- cxs20250806
东方明珠客服电话联系方式【182-8836-2750—】?- cxs20250806】
东方明珠开户流程【182-8836-2750—】?薇- cxs20250806】
东方明珠客服怎么联系【182-8836-2750—】?薇- cxs20250806】
新盛客服电话是多少?(?183-8890-9465—《?薇-STS5099】【
新盛开户专线联系方式?(?183-8890--9465—《?薇-STS5099】【?扣6011643??】
新盛客服开户电话全攻略,让娱乐更顺畅!(?183-8890--9465—《?薇-STS5099】客服开户流程,华纳新盛客服开户流程图(?183-8890--9465—《?薇-STS5099】
新盛客服电话是多少?(?183-8890-9465—《?薇-STS5099】【
新盛开户专线联系方式?(?183-8890--9465—《?薇-STS5099】【?扣6011643??】
新盛客服开户电话全攻略,让娱乐更顺畅!(?183-8890--9465—《?薇-STS5099】客服开户流程,华纳新盛客服开户流程图(?183-8890--9465—《?薇-STS5099】
华纳东方明珠客服电话是多少?(▲18288362750?《?微信STS5099? 】
如何联系华纳东方明珠客服?(▲18288362750?《?微信STS5099? 】
华纳东方明珠官方客服联系方式?(▲18288362750?《?微信STS5099?
华纳东方明珠客服热线?(▲18288362750?《?微信STS5099?
华纳东方明珠24小时客服电话?(▲18288362750?《?微信STS5099? 】
华纳东方明珠官方客服在线咨询?(▲18288362750?《?微信STS5099?
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新车上路,只带前10个人
文章的叙述风格独特,用词精准,让人回味无穷。
瑕不掩瑜,稍加打磨必成佳作。
这篇文章如同一首动人的乐章,触动了读者内心深处的柔软。