当前位置:首页 > React

react两个组件如何传值

2026-01-26 05:29:05React

父组件向子组件传值

通过 props 传递数据。父组件在调用子组件时通过属性传递值,子组件通过 props 接收。

父组件示例:

import ChildComponent from './ChildComponent';

function ParentComponent() {
  const data = "Hello from Parent";
  return <ChildComponent message={data} />;
}

子组件示例:

function ChildComponent(props) {
  return <div>{props.message}</div>;
}

子组件向父组件传值

通过回调函数实现。父组件传递一个函数给子组件,子组件调用该函数并传入参数。

父组件示例:

import ChildComponent from './ChildComponent';

function ParentComponent() {
  const handleData = (data) => {
    console.log("Received from child:", data);
  };
  return <ChildComponent onSendData={handleData} />;
}

子组件示例:

function ChildComponent({ onSendData }) {
  const sendData = () => {
    onSendData("Data from Child");
  };
  return <button onClick={sendData}>Send Data</button>;
}

兄弟组件间传值

通过状态提升(Lifting State Up)或全局状态管理(如 Context、Redux)。

状态提升示例:
父组件管理共享状态,通过 props 分发给兄弟组件。

function ParentComponent() {
  const [sharedData, setSharedData] = useState("");

  return (
    <>
      <SiblingA onUpdate={setSharedData} />
      <SiblingB data={sharedData} />
    </>
  );
}

使用 Context API 跨层级传值

适用于深层嵌套组件或全局数据共享。

创建 Context:

const MyContext = React.createContext();

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

消费 Context:

function ChildComponent() {
  const contextValue = useContext(MyContext);
  return <div>{contextValue}</div>;
}

使用 Redux 管理全局状态

适用于复杂应用的状态管理。

配置 Store:

import { createStore } from 'redux';
import rootReducer from './reducers';

const store = createStore(rootReducer);

组件中访问状态:

import { useSelector } from 'react-redux';

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

使用自定义事件(较少用)

通过 EventEmitter 或自定义事件总线实现非父子组件通信,但 React 官方推荐优先使用上述方法。

react两个组件如何传值

标签: 组件两个
分享给朋友:

相关文章

vue实现组件

vue实现组件

Vue 组件实现基础 Vue 组件是可复用的 Vue 实例,用于封装 UI 和逻辑。通过 .vue 文件或直接注册组件实现。 单文件组件 (SFC) 示例 <template&g…

vue实现拖拽实现组件嵌套

vue实现拖拽实现组件嵌套

Vue 拖拽实现组件嵌套 使用 Vue 实现拖拽组件嵌套功能可以通过原生 HTML5 拖拽 API 或第三方库如 vuedraggable 实现。以下是两种方法的详细说明: 使用 HTML5 拖拽…

vue 实现组件刷新

vue 实现组件刷新

实现组件刷新的方法 在Vue中,组件刷新通常指重新渲染组件或重置组件状态。以下是几种常见的实现方式: 使用v-if控制渲染 通过v-if指令可以销毁并重新创建组件: <template&…

vue怎么实现组件缓存

vue怎么实现组件缓存

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

vue实现组件循环图片

vue实现组件循环图片

Vue 实现组件循环图片的方法 在 Vue 中实现组件循环图片通常可以通过 v-for 指令结合动态数据绑定完成。以下是几种常见的实现方式: 使用静态图片路径数组 假设有一组本地图片路径,可以通过数…

实现vue组件

实现vue组件

创建 Vue 组件 Vue 组件可以通过单文件组件(.vue 文件)或直接在 JavaScript 中定义。以下是两种常见实现方式。 单文件组件方式 单文件组件包含模板、脚本和样式三部分,适合复杂…