vue3如何封装Notification组件
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关vue3如何封装Notification组件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。弹窗组件的思路基本一致:向body插入一段HTML。我将
千家信息网最后更新 2026年11月03日vue3如何封装Notification组件
这篇文章给大家分享的是有关vue3如何封装Notification组件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
弹窗组件的思路基本一致:向body插入一段HTML。我将从创建、插入、移除这三个方面来说我的做法
先来创建文件吧
|-- packages |-- notification |-- index.js # 组件的入口 |-- src |-- Notification.vue # 模板 |-- notification.ts
创建
用到h,render,h是vue3对createVnode()的简写。h()把Notification.vue变成虚拟dom,render()把虚拟dom变成节点。render在渲染时需要一个节点(第二个参数),创建一个只用来装Notification.vue的容器,我要的只是Notification.vue里面的HTML结构,所以创建了container先将vm变成节点,也就是HTML,这样才能插到body中
import { h, render } from "vue"import NotificationVue from "./Notification.vue"let container = document.createElement('div')let vm = h(NotificationVue)render(vm, container)懵逼点:为什么.vue文件在App.vue中能渲染出来,在这里需要先转成虚拟dom再转成节点
插入
通过document.body.appendChild把这个节点内的第一个子元素插入body中,这样就能在页面上显示出来了。
document.body.appendChild(container.firstElementChild)
移除
vue不能直接操作dom,只能操作虚拟dom了,用null覆盖掉原来的内容即可
render(null, container)
没懂vue实现原理也只是把效果做出来而已,网上查阅资料也差不多一个月了才做出来,看来我确实不适合编程
完整代码
// Notification.vueNotification
有个疑问为什么.vue文件在app中又能直接被渲染出来
// notification.tsimport { h, render } from "vue"import NotificationVue from "./Notification.vue"const notification = () => { let container = document.createElement('div') let vm = h(NotificationVue, {onClose: close}) render(vm, container) document.body.appendChild(container.firstElementChild) // 手动关闭 function close() { render(null, container) }}export default notification在App.vue中使用
// App.vue
感谢各位的阅读!关于"vue3如何封装Notification组件"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
节点
组件
内容
文件
封装
只是
更多
篇文章
不错
实用
一致
差不多
三个
个子
也就是
代码
做法
元素
入口
原理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
天津市摩尔互联网科技
广州为想互联网科技有限公司
互联网科技会
互联网科技战争
互联网科技与金融科技
以房互联网科技
齐家互联网科技
互联网科技汛
互联网科技大会案例
哈尔滨新华互联网科技
济南和联互联网科技有限公司
广州恒生互联网科技有限
2021互联网科技公司排名
互联网营销推广黑科技
互联网风格科技公司名称
全球科技与互联网公司市值变化
国产互联网科技公司
长沙渺峰互联网科技有限公司
互联网科技品牌
河南商务圈互联网科技有限公司
互联网科技有限公司图片
互联网科技公司怎么样
北京互联网络科技有限公司
上海致骋互联网科技
互联网科技的未来发展
互联网科技产品
辽宁互联网新科技
健康食品互联网创新科技园项目
四川互联网展示科技馆设计
科技互联网专业工作会议发言稿