当前位置:首页 > 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传递给子组件,子组件调用该函数并传递参数实现反向通信。

// 父组件
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获取状态。

// 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组件之间如何传值

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

相关文章

react实现vue

react实现vue

React 实现 Vue 功能 React 和 Vue 是两种不同的前端框架,但可以通过一些方法在 React 中实现 Vue 的特性。以下是几种常见 Vue 功能在 React 中的实现方式: 双…

vue组件实现

vue组件实现

Vue 组件实现 Vue 组件是 Vue.js 的核心特性之一,允许开发者将 UI 拆分为独立、可复用的模块。以下是实现 Vue 组件的几种常见方式: 单文件组件(SFC) 单文件组件是 Vue…

react如何取消渲染

react如何取消渲染

取消渲染的方法 在React中,取消渲染通常指的是在某些条件下阻止组件渲染或中断正在进行的渲染过程。以下是几种常见的方法: 条件渲染 通过条件判断决定是否渲染组件或部分内容。可以使用if语句或三元…

如何优化react

如何优化react

优化 React 性能的方法 使用 React.memo 或 PureComponent 对于函数组件,使用 React.memo 进行记忆化,避免不必要的重新渲染。类组件可以使用 PureCompo…

react如何更新

react如何更新

更新 React 版本的方法 检查当前 React 版本 运行以下命令查看项目中安装的 React 版本: npm list react 更新 React 及相关依赖 通过 npm 或 yar…

如何改造react

如何改造react

改造 React 项目的关键方法 分析当前项目结构 通过评估现有组件、状态管理和依赖项,明确需要改进的部分。使用工具如 webpack-bundle-analyzer 识别性能瓶颈。 升级 Reac…