当前位置:首页 > 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),将共享状态提升到共同的父组件中管理。

react如何通信

// 父组件
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 访问。

react如何通信

// 定义 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如何收录

react如何收录

React 收录方法 React 的收录主要涉及搜索引擎优化(SEO)和预渲染技术。由于 React 是单页应用(SPA),默认情况下内容由 JavaScript 动态生成,可能导致搜索引擎爬虫难以收…

react如何卸载

react如何卸载

卸载 React 项目或依赖 如果需要完全卸载 React 项目或相关依赖,可以按照以下步骤操作: 删除项目文件夹 直接删除整个项目文件夹是最彻底的方式。确保已备份重要代码或配置文件。 卸载全局安…

如何构建react

如何构建react

构建 React 项目的步骤 安装 Node.js 和 npm 确保系统已安装 Node.js(包含 npm)。可通过命令行验证: node -v npm -v 使用 Create React Ap…

react如何分

react如何分

React 分页实现方法 在 React 中实现分页功能可以通过多种方式完成,以下是几种常见的方法: 使用状态管理分页数据 在组件内部维护当前页码和每页数据量的状态,通过计算切片数据实现分页。…

react就业如何

react就业如何

React 就业市场现状 React 作为当前主流前端框架之一,就业需求持续旺盛。国内外互联网企业、中大型公司以及初创团队普遍采用 React 技术栈,尤其在 Web 应用、移动端(React Nat…

react 如何获取dom

react 如何获取dom

获取 DOM 的方法 在 React 中,可以通过 useRef 或 createRef 来获取 DOM 节点。useRef 是函数组件中常用的方法,而 createRef 通常用于类组件。 使用…