当前位置:首页 > React

react组件之间如何传值

2026-01-25 00:55:44React

父子组件传值(Props)

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

// 父组件
function Parent() {
  const data = "Hello from Parent";
  return <Child message={data} />;
}

// 子组件(函数式)
function Child({ message }) {
  return <div>{message}</div>;
}

子父组件传值(回调函数)

父组件将函数作为prop传递给子组件,子组件调用该函数并传递参数实现反向通信。

react组件之间如何传值

// 父组件
function Parent() {
  const handleData = (data) => {
    console.log(data);
  };
  return <Child onSend={handleData} />;
}

// 子组件
function Child({ onSend }) {
  return <button onClick={() => onSend("Data from Child")}>Send</button>;
}

Context API跨层级传值

通过React.createContext创建上下文,Provider提供数据,ConsumeruseContext消费数据。

const MyContext = React.createContext();

function App() {
  return (
    <MyContext.Provider value="Global Data">
      <ComponentA />
    </MyContext.Provider>
  );
}

function ComponentA() {
  const value = useContext(MyContext);
  return <div>{value}</div>;
}

状态管理工具(Redux/Zustand)

使用第三方库集中管理状态,各组件通过dispatch更新状态或selector获取状态。

react组件之间如何传值

// Redux示例
import { useSelector } from 'react-redux';

function Component() {
  const data = useSelector(state => state.data);
  return <div>{data}</div>;
}

事件总线(Event Emitter)

通过自定义事件实现任意组件间通信,适用于非父子关系的深层组件。

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

// 发布者组件
emitter.emit("eventName", data);

// 订阅者组件
useEffect(() => {
  emitter.on("eventName", (data) => {
    console.log(data);
  });
  return () => emitter.off("eventName");
}, []);

Refs引用传递

通过forwardRef将ref传递给子组件,直接访问DOM节点或组件实例。

const Child = forwardRef((props, ref) => {
  return <div ref={ref}>Child</div>;
});

function Parent() {
  const ref = useRef();
  useEffect(() => {
    console.log(ref.current);
  }, []);
  return <Child ref={ref} />;
}

标签: 组件react
分享给朋友:

相关文章

vue怎么实现组件缓存

vue怎么实现组件缓存

vue实现组件缓存的方法 在Vue中实现组件缓存可以通过内置的<keep-alive>组件完成,该组件能够缓存不活动的组件实例,避免重复渲染。 使用<keep-alive>基…

vue实现下拉刷新组件

vue实现下拉刷新组件

Vue 下拉刷新组件实现 核心思路 通过监听 touch 事件计算滑动距离,结合 CSS 过渡动画实现下拉效果,触发刷新回调。 基础实现步骤 监听 touch 事件 在组件 mounted 阶段绑定…

vue实现组件

vue实现组件

Vue 实现组件的方法 Vue 中实现组件可以通过多种方式,包括全局注册、局部注册、单文件组件(SFC)等。以下是常见的实现方法。 全局注册组件 全局注册的组件可以在任何 Vue 实例或组件中使用。…

如何恢复react

如何恢复react

恢复 React 项目的方法 检查并修复依赖项 运行 npm install 或 yarn install 重新安装所有依赖项。如果依赖项损坏或缺失,这将恢复项目所需的库和工具。 恢复删除的文件 如…

如何读react源码

如何读react源码

理解React源码的结构 React源码托管在GitHub上,主要分为几个核心模块:react、react-dom、react-reconciler等。react包包含核心API和组件逻辑,react…

如何实操react

如何实操react

安装 React 环境 使用 create-react-app 快速搭建项目: npx create-react-app my-app cd my-app npm start 项目启动后默认在…