最新要闻
- 上映首日!《速度与激情10》票房突破8000万-全球看点
- 消息称58同城开启大裁员:裁撤比例50%以上-全球快讯
- 过去一年 腾讯员工减少1万人 平均工资又涨了 世界热推荐
- 国产龙芯3B600八个大小核、自研GPU:性能媲美Zen2、10代酷睿-当前播报
- 世界微动态丨你看微信视频号么?腾讯:粉丝破万创作者是去年三倍
- 天天视点!欧洲“核联盟”为欧洲核能发展拟定“路线图”
- 环球热门:金智科技接待中泰证券等多家机构调研
- 被要求停服!CyGames《赛马娘》遭专利起诉:国服B站代理-每日速讯
- RTX 4060 Ti/RX 7600新卡同时来了!NVIDIA、AMD拼价格:玩家血赚|每日视点
- 资讯:3年10倍!插电车型翻倍式爆卖 比亚迪独占世界4成
- 比5G好用10倍!北京首个5.5G实验基站正式开通
- 开除软件部门全体高管后 要用华为车机软件?大众回应
- 国家一级保护动物黄嘴白鹭“组团”造访厦门|世界快消息
- 过氧化苯甲酸叔丁酯商品报价动态(2023-05-17)
- 春秋时期青铜器酷似5根天线路由器 用途至今成谜 环球热头条
- 今日国内油价迎年内最大降幅 下次调整或将持续下跌
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
天天关注:记录--vue3优雅的使用element-plus的dialog
【资料图】
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助
如何优雅的基于 element-plus,封装一个梦中情 dialog
优点
摆脱繁琐的 visible 的命名,以及反复的重复 dom。
想法
将 dialog 封装成一个函数就能唤起的组件。如下:
addDialog({ title: "测试", //弹窗名 component: TestVue, //组件 width: "400px", //弹窗大小 props: { //传给组件的参数 id: 0 }, callBack: (data: any) => { //当弹窗任务结束后,调用父页面的回掉函数。(比如我新增完成了需要刷新列表页面) console.log("回调函数", data) }})
效果图
基于 el-dialog 进行初步封装
// index.tsimport { reactive } from "vue"type dialogOptions = { title: string component: any props?: Object width: string visible?: any callBack?: Function}export const dialogList: dialogOptions[] = reactive([])export const addDialog = (options: dialogOptions) => { dialogList.push(Object.assign(options, { visible: true }))}export const closeDialog = (item: dialogOptions, i: number, args?: any, isNativeClose?: boolean) => { dialogList.splice(i, 1) if (!isNativeClose) item.callBack && item.callBack(...args)}
<script setup lang="ts"> import { dialogList, closeDialog } from "./index"</script> closeDialog(item, index, "", true)" > closeDialog(item, index, args)" />
- 首先定义了 dialogList,它包含了所有弹窗的信息。
- component 使用 componet is 去动态加载子组件
- addDialog 调用唤起弹窗的函数
- closeDialog 关闭弹窗的函数
在app.vue中挂载
<script setup>import Mydialog from "@/components/gDialog/index.vue"</script>
使用
创建一个弹窗组件
父弹窗打开子dialog 关闭弹窗 <script setup lang="ts"> import { addDialog } from "@/components/gDialog/index" import childVue from "./child.vue" const props = defineProps(["id"]) console.log(props.id, "props") const emit = defineEmits(["close"]) const closeDialog = () => { emit("close", 1, 2, 34) } const openChildDialog = () => { addDialog({ title: "我是子dialog", width: "500px", component: childVue }) }</script>
在列表页面唤醒弹窗
列表页打开dialog <script setup lang="ts">import { addDialog } from "@/components/gDialog/index"import TestDialog from "./test.vue"const openDialog = () => { addDialog({ title: "我是dialog", width: "500px", props:{ id:0 } component: TestDialog, callBack: (data: any) => { //当弹窗任务结束后,调用父页面的回掉函数。(比如我新增完成了需要刷新列表页面) console.log("回调函数", data) } })}
多层级弹窗嵌套
子弹窗关闭弹窗 <script setup lang="ts"> import { addDialog } from "@/components/gDialog/index" const emit = defineEmits(["close"]) const closeDialog = () => { emit("close", 1, 2, 34) }</script>
附上代码
代码
本文转载于:
https://juejin.cn/post/7224007334514638903
如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。
关键词:
天天关注:记录--vue3优雅的使用element-plus的dialog
上映首日!《速度与激情10》票房突破8000万-全球看点
消息称58同城开启大裁员:裁撤比例50%以上-全球快讯
过去一年 腾讯员工减少1万人 平均工资又涨了 世界热推荐
国产龙芯3B600八个大小核、自研GPU:性能媲美Zen2、10代酷睿-当前播报
世界微动态丨你看微信视频号么?腾讯:粉丝破万创作者是去年三倍
天天视点!欧洲“核联盟”为欧洲核能发展拟定“路线图”
软件测试精品书籍文档下载
热议:4大特性看Huawei Cloud EulerOS为开发者带来平滑迁移体验
设计软件的二次开发总结(表格)
环球热门:金智科技接待中泰证券等多家机构调研
【时快讯】乌兹别克斯坦官员:乌兹别克斯坦愿与中国展开全方位各领域合作
被要求停服!CyGames《赛马娘》遭专利起诉:国服B站代理-每日速讯
RTX 4060 Ti/RX 7600新卡同时来了!NVIDIA、AMD拼价格:玩家血赚|每日视点
资讯:3年10倍!插电车型翻倍式爆卖 比亚迪独占世界4成
比5G好用10倍!北京首个5.5G实验基站正式开通
开除软件部门全体高管后 要用华为车机软件?大众回应
国家一级保护动物黄嘴白鹭“组团”造访厦门|世界快消息
kasini3000新增:ansible like输出 观焦点
小程序安全架构分析
天天微头条丨Natasha相关辅助类 (六)
SpringBoot项目预加载数据——ApplicationRunner、CommandLineRunner、InitializingBean 、@PostCo
DQL语句(一) -----简单select查询
过氧化苯甲酸叔丁酯商品报价动态(2023-05-17)
收评:沪指跌0.21%量能创逾两月新低 军工板块表现活跃
春秋时期青铜器酷似5根天线路由器 用途至今成谜 环球热头条
今日国内油价迎年内最大降幅 下次调整或将持续下跌
世界快资讯丨4年磨一剑 华为麒麟A2芯片来了:消息称已具备量产能力
全球看热讯:不负等待 新款华为MateBook E 二合一笔记本或将开启移动生产力融合时代
奥迪前CEO承认“大众排放门”存欺诈 拿839万元换缓刑
海上航行26天,首单到货!以人民币结算
SRE Google 运维解密读书笔记一:SRE 方法论概述
Python从零到壹丨带你了解图像直方图理论知识和绘制实现
匠心精神--来看一个小迭代的代码实现
《塞尔达传说:王国之泪》卖爆背后是手游行业的悲哀-全球视讯
再见吧!特斯拉强制单踏板模式
全球今亮点!“感染”塞尔达病毒后 我每天只睡三小时
硬派越野车不适合城市?仰望U8云辇-P出手:三级可调、软硬随心
ChatGPT估值已上2000亿 创始人对钱没兴趣:收入只够交保险 当前速看
23中国中药SCP001今日发布发行公告|当前聚焦
全球头条:1美金等于多少人民币元(2023年5月17日)
国内又现被驱赶的5G基站:你敢建?我就敢拆!居民称辐射大有害健康|全球热点评
开除软件部门全体高管后 大众被曝要用华为车机软件|全球微资讯
1TB硬盘只要200元 三星等带头减产闪存 国产存储公司回应:好消息 天天短讯
全球观焦点:企业级项目模板的配置与集成(Vite + Vue3 + TypeScript)
智能家居生态迎来超强辅助 快资讯
当前要闻:沈阳金融商贸开发区聘请十余位顾问委员会特邀专家
四大运营商宣布:我国启动全球首个5G异网漫游试商用
国产武侠游戏巅峰 等了16年的《仙剑4重制版》悬了
OPPO Reno10系列正面颜王:对称双曲面、2.12mm窄下巴 世界快讯
前苹果工程师被指控盗窃自动驾驶技术 为中国汽车公司牟利
ZV-1继承者来了!索尼新款Vlog相机5月23日发布
我国成功发射第五十六颗北斗导航卫星 全球观点
数据结构-环球速递
【世界热闻】提高数据的安全性和可控性,数栈基于 Ranger 实现的 Spark SQL 权限控制实践之路
环球看点!Django authenticate() 函数查找不到与提交的用户名和密码匹配的用户,则会返回 None。
apb uart IP使用说明
微软反驳马斯克:我们并没有控制OpenAI
频繁翻车、流量不再 为何明星代言手机越来越少了?
环球要闻:20年来重大转变 马斯克将花钱为特斯拉打广告
边开边充!瑞典率先打造世界首条永久性充电公路 头条
病人被医生遗忘在磁共振舱近三小时 属重大医疗事故 科普:没辐射
全球新动态:【道德经】五十·出生入死
NineData:高效高质量的 Redis 可视化管理工具|今热点
如何在不改变图片分辨率的情况下增加图片的大小
今日讯!国家发展改革委与标普评级公司召开座谈会 开展我国主权信用评级复评工作
最新70城房价出炉,4月份郑州新房同比增长0.2%
孟羽童图文广告报价至少15万一条 网友称其已赚近300万-世界聚看点
屏幕良心了 Redmi Book 14用上2.8K 120Hz:告别万年FHD 60Hz 当前观察
自主品牌崛起 国人依然爆买BBA等豪华车 30万以上增速翻倍-全球视讯
一特斯拉高速堵车任性变至应急车道:差点蹭翻执勤车辆
火爆!华为Mate X3出货目标翻倍:修改为超300万台-世界消息
保障口岸快捷通道恢复通关
热点聚焦:简单聊两句前端模块化
【天天聚看点】2023蝶变志愿免费版有没有 软件好用吗靠谱吗
消息称特斯拉申请扩建上海超级工厂:将首次生产软包电池 全球观速讯
马斯克“抢功”:没有我就没有OpenAI ChatGPT
档位天花板!荣耀90系列官宣:全新镜头惊艳
淘汰老头乐!两部门支持农村购买新能源汽车 提供以旧换新奖励|世界时快讯
天热必备:匹克夏季针织短裤34元官方冲量(65元优惠券)_今热点
世界快资讯:《守望先锋2》PVE英雄模式取消:开发没有取得预期进展
Vuex的使用 环球通讯
最低已跌至5.5% 上市券商两融利率集体下滑|世界新资讯
焦点速看:连通三大火车站,广州站至广州南站将建铁路联络线
莫言称余华根本不是我的对手:神评当代大学生脱不下孔乙己长衫 让人感慨
或卖17万!特斯拉公布全新车型 新一代平台打造:不用任何稀土
华为启动建设“双万兆之城”:5.5G峰值速率10Gbps 比5G快9倍-每日观点
北京发布人工智能算法领域专门人才政策
环球通讯!【读财报】创业板一季度业绩透视:近四成公司营收净利双增 机械设备、医药生物等行业表现突出
苹果联合创始人称想死就买特斯拉!马斯克回应:这比人类驾驶安全10倍
全球快报:仙侠剧《护心》惊现科技梗:"爱凤"变“花为” 剧情脑洞大开
2023特斯拉股东大会正式召开!一文了解重点内容
天天热讯:迪马尔科赛后话筒喊话:谁不跳谁就是米兰球迷 一起去伊斯坦布尔
关于Kubernetes-k8s集群在任意nodes节点上执行kubectl和kubadm命令的方法 全球报资讯
至少30元/杯!国人消费越来越冷静:都不喝星巴克了...
最高读取7100MB/s!京东京造鲲鹏SSD发布:2TB 579元
成都医保局缴费记录多久更新?-今日热搜
03-运算符
播报:不如华为轻薄!曝三星Galaxy Z Fold5 7月发
世界关注:无力自研 大众密谋动用数十亿欧元收购华为车BU:玩真的?