news 2026/5/10 9:21:33

Vue—— Vue3 + Node.js 后台管理系统 之 【组件通信技巧】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vue—— Vue3 + Node.js 后台管理系统 之 【组件通信技巧】

背景问题

在Vue应用中,组件间通信是常见需求,但不同场景需要不同的通信方式。

方案思考

  • 如何实现跨层级通信
  • 如何使用事件总线
  • 如何处理属性透传

具体实现

跨层级通信:

// utils/componentCommunication.ts - 组件通信技巧// 1. 使用provide/inject实现跨层级通信// 父组件import{provide,ref}from'vue';exportfunctionuseParentProvider(){constsharedData=ref('shared value');provide('shared-data',sharedData);provide('update-data',(newVal:string)=>{sharedData.value=newVal;});}// 子组件(任意层级)import{inject}from'vue';exportfunctionuseChildConsumer(){constsharedData=inject('shared-data');constupdateData=inject('update-data');return{sharedData,updateData};}

事件总线:

// 2. 使用mitt实现事件总线importmittfrom'mitt';typeEvents={'user-login':{userId:string;username:string};'user-logout':void;'data-updated':any;};constemitter=mitt<Events>();// 发送事件exportfunctionemitEvent<TextendskeyofEvents>(event:T,data?:Events[T]){emitter.emit(event,data);}// 监听事件exportfunctiononEvent<TextendskeyofEvents>(event:T,handler:(data?:Events[T])=>void){emitter.on(event,handler);}// 移除监听exportfunctionoffEvent<TextendskeyofEvents>(event:T,handler:(data?:Events[T])=>void){emitter.off(event,handler);}

属性透传:

// 3. 使用useAttrs和useSlots处理透传import{useAttrs,useSlots}from'vue';exportfunctionuseForwardProps(){constattrs=useAttrs();constslots=useSlots();return{forwardedAttrs:attrs,hasDefaultSlot:!!slots.default,hasNamedSlot:(name:string)=>!!slots[name]};}

效果验证

通过不同的通信方式,可以灵活处理各种组件间通信需求。

经验总结

选择合适的通信方式很重要,避免过度依赖某一种方式,要根据具体场景选择最优方案。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 5:09:06

3步解锁AI游戏助手:让2048突破10000分的秘密武器

3步解锁AI游戏助手&#xff1a;让2048突破10000分的秘密武器 【免费下载链接】2048-ai AI for the 2048 game 项目地址: https://gitcode.com/gh_mirrors/20/2048-ai 告别无效尝试&#xff0c;AI带你轻松掌握数字合并的艺术 你是否在2048游戏中经常陷入数字杂乱无章的困…

作者头像 李华
网站建设 2026/5/6 8:42:06

Ryzen优化指南:用SMUDebugTool实现硬件调优与性能释放

Ryzen优化指南&#xff1a;用SMUDebugTool实现硬件调优与性能释放 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

作者头像 李华
网站建设 2026/5/9 5:18:11

SMUDebugTool完全指南:Ryzen系统调试与性能优化实战手册

SMUDebugTool完全指南&#xff1a;Ryzen系统调试与性能优化实战手册 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://…

作者头像 李华
网站建设 2026/5/9 5:18:26

工业级3D模型优化与STL格式转换全指南

工业级3D模型优化与STL格式转换全指南 【免费下载链接】sketchup-stl A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export. 项目地址: https://gitcode.com/gh_mirrors/sk/sketchup-stl 在工业级3D打印流程中&#xff0c;3D模…

作者头像 李华
网站建设 2026/5/9 5:18:06

抖音视频下载工具使用指南:从需求到落地的完整方案

抖音视频下载工具使用指南&#xff1a;从需求到落地的完整方案 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容爆炸的时代&#xff0c;高效获取和管理社交媒体视频已成为内容创作者、研究人员和普…

作者头像 李华