贝利信息

JavaScript如何实现组件通信_父子组件和兄弟组件怎样传值

日期:2026-01-02 00:00 / 作者:夜晨
组件通信由前端框架实现,Vue 3 用 props/$emit/v-model 实现父子通信,React 用 props/回调函数/受控组件;兄弟组件需通过父组件或状态管理(Pinia/Zustand)协调;跨层级可用 provide/inject 或 Context。

JavaScript 本身不直接处理组件通信,真正实现组件通信的是前端框架(如 Vue、React)。原生 JavaScript 没有“组件”概念,但现代开发中常说的“组件通信”默认指 Vue 或 React 中的实践。下面以 Vue 3(组合式 API)React 18(函数组件 + Hooks) 为主,说明父子、兄弟组件传值的核心方式,语言简洁、直击关键。

父子组件通信:父传子用 props,子传父用事件

Vue 3 示例:

React 示例:

兄弟组件通信:绕过彼此,共用父组件或状态管理

兄弟组件没有直接引用关系,不能互相调用方法或读取状态。必须借助“中间人”:

不推荐但偶见的方式:事件总线或全局状态(慎用)

过去有人用 EventBus(Vue 2)CustomEvent(原生) 实现任意组件通信,现在已不推荐:

小技巧:跨层级通信可考虑 provide/inject(Vue)或 Context(React)

不是所有跨级都得靠 props 一层层传: