news 2026/5/1 5:49:45

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 2:07:16

douyin-downloader高效获取指南:从零基础到专家级管理

douyin-downloader高效获取指南&#xff1a;从零基础到专家级管理 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader douyin-downloader是一款专注于抖音内容批量获取与智能管理的工具&#xff0c;通过自动化技…

作者头像 李华
网站建设 2026/4/24 19:29:20

抖音直播回放高效下载与智能管理完全指南

抖音直播回放高效下载与智能管理完全指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 你是否曾为错过精彩的抖音直播而遗憾&#xff1f;是否想保存喜爱主播的直播内容以便日后回味&#xff1f;本文将带你…

作者头像 李华
网站建设 2026/4/21 2:41:52

3个核心方案提升Mac游戏操控体验:跨平台按键映射与手柄配置指南

3个核心方案提升Mac游戏操控体验&#xff1a;跨平台按键映射与手柄配置指南 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover Mac游戏操控优化是提升手游体验的关键环节&#xff0c;而跨平台按键映射技术…

作者头像 李华