当前位置:首页 > React

react如何通信

2026-02-11 14:58:20React

React 组件通信方式

父组件向子组件传递数据
通过 props 传递数据,子组件通过 this.props(类组件)或直接解构 props(函数组件)接收。

// 父组件
<ChildComponent message="Hello from parent" />

// 子组件(函数组件)
const ChildComponent = ({ message }) => <div>{message}</div>;

子组件向父组件传递数据
父组件通过 props 传递回调函数,子组件调用该函数并传递数据。

// 父组件
const handleChildData = (data) => console.log(data);
<ChildComponent onData={handleChildData} />

// 子组件
<button onClick={() => props.onData("Child data")}>Send</button>

兄弟组件通信
通过状态提升(Lifting State Up),将共享状态提升到共同的父组件中管理。

// 父组件
const [sharedState, setSharedState] = useState("");
<ChildA onUpdate={setSharedState} />
<ChildB value={sharedState} />

跨层级组件通信
使用 Context API 或状态管理库(如 Redux、MobX)。

// 创建 Context
const MyContext = React.createContext();

// 提供者组件
<MyContext.Provider value={value}>
  <ChildComponent />
</MyContext.Provider>

// 消费者组件(函数组件)
const value = useContext(MyContext);

全局状态管理(Redux)
适用于复杂应用,通过 store 集中管理状态,组件通过 connectuseSelector 访问。

// 定义 action 和 reducer
const increment = () => ({ type: 'INCREMENT' });

// 组件中触发
dispatch(increment());

事件总线(Event Emitter)
通过自定义事件或第三方库(如 events)实现发布-订阅模式。

// 订阅事件
eventEmitter.on('event', (data) => {});

// 发布事件
eventEmitter.emit('event', data);

Ref 通信
通过 useRefcreateRef 直接访问组件实例或 DOM 节点。

const ref = useRef();
<ChildComponent ref={ref} />
// 调用子组件方法
ref.current.doSomething();

URL 参数或路由状态
通过 react-routeruseParamsuseLocation 传递数据。

// 路由配置
<Route path="/user/:id" component={User} />

// 组件中获取
const { id } = useParams();

选择建议

  • 简单父子通信:props 或回调函数。
  • 跨层级或全局状态:Context API 或 Redux。
  • 非父子关系且简单场景:事件总线。
  • 需要直接操作子组件:ref

react如何通信

标签: 通信react
分享给朋友:

相关文章

vue实现串口通信

vue实现串口通信

Vue 实现串口通信的方法 在 Vue 项目中实现串口通信,通常需要借助浏览器提供的 Web Serial API 或第三方库。以下是几种常见的实现方式: 使用 Web Serial API We…

vue实现udp通信

vue实现udp通信

Vue 中实现 UDP 通信的方法 由于浏览器环境的安全限制,JavaScript 无法直接通过 Web API 实现 UDP 通信。但可以通过以下方法间接实现: 使用 WebSocket 中转 在…

react如何部署

react如何部署

部署 React 应用的常见方法 使用静态服务器部署 React 应用在构建后会生成静态文件,可以直接通过静态服务器部署。常用的静态服务器包括 Nginx、Apache 等。 运行构建命令生成静态文…

react如何encode

react如何encode

React 中编码的实现方式 在 React 中,编码通常涉及对 URL、HTML 实体或特殊字符的处理。以下是几种常见的编码方法: 使用 encodeURIComponent 进行 URL 编码…

react如何打包

react如何打包

打包 React 项目的基本步骤 React 项目通常使用 create-react-app 或类似的脚手架工具创建,这些工具内置了打包功能。以下是打包 React 项目的详细方法: 安装依赖并构…

react如何检测

react如何检测

检测 React 应用的方法 使用 PropTypes 进行类型检查 PropTypes 是 React 内置的类型检查工具,用于验证组件的 props 是否符合预期。在开发环境中,PropTypes…