当前位置:首页 > 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 native 如何

react native 如何

React Native 开发基础 React Native 是一个用于构建跨平台移动应用的框架,允许开发者使用 JavaScript 和 React 编写代码,同时生成原生 iOS 和 Androi…

如何生成react代码

如何生成react代码

使用 Create React App 生成项目 安装 Node.js 后,通过命令行工具运行以下命令创建新项目: npx create-react-app my-app cd my-app npm…

如何下载react

如何下载react

下载 React 的方法 通过 npm 或 yarn 安装 React 可以通过包管理器 npm 或 yarn 安装。确保已安装 Node.js(包含 npm),然后在项目目录中运行以下命令:…

如何创建react

如何创建react

创建React项目的步骤 使用Create React App工具快速搭建React项目。确保已安装Node.js(版本需≥14.0.0)和npm(版本需≥5.6)。 打开终端或命令行工具,运行以下…

react如何diff

react如何diff

React Diff 算法原理 React 的 Diff 算法是 Virtual DOM 的核心部分,用于高效更新真实 DOM。其核心思想是通过对比新旧 Virtual DOM 树的差异,最小化 DO…

react如何动画

react如何动画

React 动画实现方法 React 中实现动画可以通过多种方式,包括原生 CSS、第三方库或 React 内置的动画解决方案。以下是几种常见方法: 使用 CSS 动画和过渡 通过 CSS 的 tr…