当前位置:首页 > React

react如何组件传值

2026-03-11 01:26:37React

React 组件传值方法

父组件向子组件传值(Props)

父组件通过属性(props)将数据传递给子组件。子组件通过 props 接收数据。

父组件代码示例:

import ChildComponent from './ChildComponent';

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

子组件代码示例:

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

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

父组件通过回调函数接收子组件的数据。子组件调用父组件传递的函数并传入数据。

父组件代码示例:

import ChildComponent from './ChildComponent';

function ParentComponent() {
  const handleData = (data) => {
    console.log(data);
  };
  return <ChildComponent onData={handleData} />;
}

子组件代码示例:

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

兄弟组件传值(状态提升)

将共享状态提升到最近的共同父组件中,通过 props 传递给兄弟组件。

父组件代码示例:

import SiblingA from './SiblingA';
import SiblingB from './SiblingB';

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

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

兄弟组件 A 代码示例:

function SiblingA(props) {
  const updateData = () => {
    props.setSharedData("Updated Data");
  };
  return <button onClick={updateData}>Update Data</button>;
}

兄弟组件 B 代码示例:

function SiblingB(props) {
  return <div>{props.sharedData}</div>;
}

跨层级组件传值(Context API)

使用 React.createContext 创建上下文,通过 Provider 提供数据,子组件通过 useContextConsumer 获取数据。

创建 Context:

import { createContext } from 'react';

const MyContext = createContext();
export default MyContext;

父组件代码示例:

import MyContext from './MyContext';
import ChildComponent from './ChildComponent';

function ParentComponent() {
  const value = "Context Value";
  return (
    <MyContext.Provider value={value}>
      <ChildComponent />
    </MyContext.Provider>
  );
}

子组件代码示例:

import { useContext } from 'react';
import MyContext from './MyContext';

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

全局状态管理(Redux)

使用 Redux 进行全局状态管理,组件通过 useSelector 获取状态,通过 useDispatch 更新状态。

安装 Redux:

npm install redux react-redux

创建 Store:

import { createStore } from 'redux';

const initialState = { data: "" };
const reducer = (state = initialState, action) => {
  switch (action.type) {
    case 'UPDATE_DATA':
      return { ...state, data: action.payload };
    default:
      return state;
  }
};

const store = createStore(reducer);
export default store;

父组件代码示例:

import { Provider } from 'react-redux';
import store from './store';
import ChildComponent from './ChildComponent';

function ParentComponent() {
  return (
    <Provider store={store}>
      <ChildComponent />
    </Provider>
  );
}

子组件代码示例:

react如何组件传值

import { useSelector, useDispatch } from 'react-redux';

function ChildComponent() {
  const data = useSelector(state => state.data);
  const dispatch = useDispatch();

  const updateData = () => {
    dispatch({ type: 'UPDATE_DATA', payload: "New Data" });
  };

  return (
    <>
      <div>{data}</div>
      <button onClick={updateData}>Update Data</button>
    </>
  );
}

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

相关文章

vue实现组件封装

vue实现组件封装

Vue 组件封装方法 封装组件的基本步骤 创建独立的 .vue 文件,包含 template、script 和 style 三个部分。通过 props 接收父组件传递的数据,使用 $emit 触发自…

如何手写一个react

如何手写一个react

手写一个简单的 React 创建一个基础的 React 实现需要理解其核心概念:虚拟 DOM、组件、状态管理和渲染。以下是一个简化版的 React 实现。 创建虚拟 DOM 虚拟 DOM 是真实 D…

react如何遍历

react如何遍历

遍历数组或对象的方法 在React中,遍历数组或对象通常用于渲染列表或动态生成内容。以下是几种常见的遍历方法: 使用map遍历数组map是遍历数组并返回新数组的高阶函数,适合渲染列表。…

react如何浮动

react如何浮动

使用 CSS 实现浮动 在 React 中实现浮动效果可以通过 CSS 的 float 属性完成。在组件的样式文件或内联样式中直接设置 float: left 或 float: right。 /…

如何用react

如何用react

使用React的基本步骤 安装Node.js和npm 确保系统已安装Node.js和npm。Node.js自带npm,可从官网下载安装包。安装完成后,通过命令行验证版本: node -v npm -…

vue实现组件跟随

vue实现组件跟随

Vue 实现组件跟随效果 实现组件跟随效果通常需要监听鼠标或触摸事件,动态更新组件位置。以下是几种常见实现方式: 使用鼠标事件绑定 <template> <div class=…