vue3 自定义message弹窗
创始人
2025-05-31 00:03:24

1、定义一个Message.vue组件其内容如下



2、创建一个叫Message.js的文件其内容如下:

// 提供一个能够显示Message组件的函数
// 这个函数将来:导入直接使用,也可以挂载在vue实例原型上import { createVNode, render } from 'vue'
import HelloWorld from "@/components/Message.vue";// DOM容器
const div = document.createElement('div')
div.setAttribute('class', 'xtx-msssage-container')
document.body.appendChild(div)// 定时器标识
let timer = nullexport default ({ type, text }) => {// 渲染组件// 1. 导入消息提示组件// 2. 将消息提示组件编译为虚拟节点(dom节点)// createVNode(组件,属性对象(props))const vnode = createVNode(HelloWorld, { type, text })// 3. 准备一个装载消息提示组件的DOM容器// 4. 将虚拟节点渲染再容器中// render(虚拟节点,DOM容器)render(vnode, div)// 5. 3s后销毁组件clearTimeout(timer)timer = setTimeout(() => {render(null, div)}, 3000)
}

3、在app.vue中导入并使用:

4、效果如下:当点击左边按钮后会弹出一个消息提示框,3秒后关闭

在这里插入图片描述

5、如果想使用this.$message这种方式则需定义一个UI.js文件用来挂载Message.js其内容如下:

import Message from "@/Message";
export default {install (app) {// 定义一个原型函数app.config.globalProperties.$message = Message}
}

6、在main.js中导入并使用use挂载到app上,如下所示

import { createApp } from 'vue'
import App from './App.vue'
import UI from "@/UI";
// 导入自己UI组件库
// import UI from './UI'// 插件的使用,在main.js使用app.use(插件)
createApp(App).use(UI).mount('#app')

这种方式的缺点是还是得在选项式上才方便使用,在组合式方式上不推荐

相关内容

热门资讯

香港“大埔宏福苑援助基金”总额...   中新网香港12月13日电 香港特区政府12日晚公布的跟进大埔火灾最新情况显示,截至12日中午,特...
全运持续惠民 米易以赛营城——... 冬日的川西南,阳光和煦。12月13日,“阳光米易杯”2025年全国健身气功邀请赛在四川省攀枝花市米易...
上海民企的全球化进阶:以数字化... 从黄浦江畔走向世界舞台,上海民营经济正以数字化为核心引擎,开启新一轮全球化发展进程。无论是深耕行业多...
屯溪示范幼儿园“足球宝贝”闪耀... 12月14日,安徽省青少年足球联赛黄山赛区赛事在江心洲体育公园拉开帷幕。作为安徽省一类幼儿园、全国足...
福达股份携手长坂科技与意优科技... 人形机器人核心关节模组制造企业上海意优智控科技有限公司(以下简称“意优科技”)12月14日发布消息称...