当前位置:首页 > 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 实现组件拖放的方法 使用 HTML5 原生拖放 API HTML5 提供了原生的拖放 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 dr…

react中monent如何获取日期

react中monent如何获取日期

使用 Moment.js 获取当前日期 在 React 中通过 Moment.js 获取当前日期,可以直接调用 moment() 函数。它会返回包含当前日期和时间的 Moment 对象。 impor…

电脑如何安装react

电脑如何安装react

安装 Node.js 和 npm React 依赖于 Node.js 和 npm(Node Package Manager)。从 Node.js 官网下载并安装最新稳定版本,安装完成后会自动包含 np…

react性能如何

react性能如何

React 性能特点 React 通过虚拟 DOM(Virtual DOM)和高效的 diff 算法优化性能。虚拟 DOM 减少了直接操作真实 DOM 的开销,仅在必要时更新变化的部分。React 的…

如何选购react

如何选购react

选购 React 相关产品或服务的建议 React 是一个用于构建用户界面的 JavaScript 库,广泛应用于前端开发。以下是选购 React 相关产品(如课程、书籍、工具、组件库等)的参考方法:…

react如何部署

react如何部署

部署 React 应用的常见方法 使用静态服务器部署 React 应用在构建后会生成静态文件,可以直接通过静态服务器部署。常用的静态服务器包括 Nginx、Apache 等。 运行构建命令生成静态文…