当前位置:首页 > React

react模型之间如何通信

2026-01-24 14:58:33React

组件间通信方法

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

// 父组件
<ChildComponent data={someData} />

// 子组件
function ChildComponent({ data }) {
  return <div>{data}</div>;
}

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

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

// 子组件
<button onClick={() => onData("Hello")}>Send</button>

跨层级通信

Context API
适用于跨多层级组件共享数据,避免逐层传递props
示例:

const MyContext = React.createContext();

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

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

状态管理库(Redux/MobX)
集中管理全局状态,通过storeactions实现通信。
Redux示例:

// 触发Action
dispatch({ type: 'ACTION_TYPE', payload: data });

// 订阅状态
const data = useSelector(state => state.data);

事件总线(Event Emitter)

通过第三方库(如events)实现任意组件间通信。
示例:

import EventEmitter from 'events';
const emitter = new EventEmitter();

// 组件A发送事件
emitter.emit('event', data);

// 组件B监听事件
emitter.on('event', data => console.log(data));

Refs与实例方法

父组件通过ref调用子组件方法。
示例:

// 子组件(类组件)
class Child extends React.Component {
  method() { /* ... */ }
}

// 父组件
const childRef = useRef();
<Child ref={childRef} />
<button onClick={() => childRef.current.method()} />

其他方法

状态提升
将共享状态提升至最近的共同父组件管理,通过props分发。

本地存储(LocalStorage)
非实时但持久的通信方式,适合保存用户偏好。

URL参数
通过路由传递数据,适用于页面间通信。

react模型之间如何通信

标签: 模型通信
分享给朋友:

相关文章

vue实现udp通信

vue实现udp通信

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

vue实现串口通信

vue实现串口通信

vue实现串口通信的方法 Vue本身不直接支持串口通信,但可以通过浏览器API或第三方库实现。以下是几种常见方法: 使用Web Serial API Web Serial API是现代浏览器提供的…

h5实现通信

h5实现通信

H5实现通信的方法 H5(HTML5)提供了多种通信方式,适用于不同场景的需求。以下是常见的几种实现方法: WebSocket通信 WebSocket是一种全双工通信协议,适用于实时性要求高的场景…

vue实现长通信

vue实现长通信

Vue 实现长连接的几种方法 在 Vue 中实现长连接通信通常涉及 WebSocket、Server-Sent Events (SSE) 或轮询等技术。以下是几种常见的实现方式: WebSocket…