当前位置:首页 > 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 提供了多种方式实现组件间的通信,适用于不同场景。以下是常见的方法: Props 和 Events 父组件通过 props 向子组件传递数据,子组件通过 $emit 触…

使用vue实例实现通信

使用vue实例实现通信

Vue 实例通信方法 父子组件通信 使用 props 传递数据给子组件,子组件通过 $emit 触发事件传递数据给父组件。 父组件: <template> <ChildCo…

react组件之间是如何通信

react组件之间是如何通信

父子组件通信(Props) 父组件通过props向子组件传递数据或方法,子组件通过接收props实现数据或行为的更新。父组件定义props,子组件通过this.props(类组件)或直接解构(函数组件…

react如何完成组件通信

react如何完成组件通信

父子组件通信 父组件通过props向子组件传递数据。子组件通过调用父组件传递的回调函数与父组件通信。 // 父组件 function Parent() { const [data, setDa…