当前位置:首页 > React

react如何传值

2026-02-12 04:41:26React

父组件向子组件传值

使用 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>;
}

子组件向父组件传值

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

父组件示例:

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

子组件示例:

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

兄弟组件间传值

通过状态提升或全局状态管理(如 Context、Redux)实现。

react如何传值

状态提升示例:

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

  return (
    <>
      <ChildA onData={setSharedData} />
      <ChildB data={sharedData} />
    </>
  );
}

使用 Context API

适用于跨层级组件传值。

创建 Context:

const MyContext = React.createContext();

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

子组件消费 Context:

react如何传值

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

使用 Redux 全局状态管理

适用于复杂应用的多组件共享状态。

安装 Redux:

npm install redux react-redux

定义 Store 和 Reducer:

import { createStore } from 'redux';

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

const store = createStore(reducer);

组件中连接 Redux:

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

function App() {
  return (
    <Provider store={store}>
      <ComponentA />
      <ComponentB />
    </Provider>
  );
}

function ComponentA() {
  const dispatch = useDispatch();
  const sendData = () => {
    dispatch({ type: 'UPDATE_DATA', payload: "New Data" });
  };
  return <button onClick={sendData}>Update Data</button>;
}

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

标签: react
分享给朋友:

相关文章

react如何销毁

react如何销毁

React 组件销毁的机制 在 React 中,组件的销毁通常由 React 的生命周期管理。当组件从 DOM 中移除时,React 会自动触发销毁相关的生命周期方法。以下是关键点: 组件的销毁通常…

react如何验证

react如何验证

表单验证方法 在React中验证表单数据通常使用以下几种方式: 内置HTML5验证 利用HTML5原生表单验证属性如required、pattern等,结合form.noValidate属性禁用浏览…

java如何react

java如何react

在Java中使用React 要在Java项目中集成React,通常需要将React前端与Java后端结合使用。以下是几种常见的方法: 使用Spring Boot作为后端 Spring Boot是一个…

react 如何渲染的

react 如何渲染的

React 渲染机制 React 的渲染过程分为两个主要阶段:协调(Reconciliation)和提交(Commit)。协调阶段负责计算差异(Diffing),提交阶段将变化应用到 DOM。 虚拟…

react 如何使用 apply

react 如何使用 apply

使用 apply 方法的基本概念 在 JavaScript 中,apply 是函数原型上的方法,用于调用函数时指定 this 的值和传递参数数组。React 中可以使用 apply 来绑定组件方法或调…

react less如何配置

react less如何配置

在 React 项目中配置 Less 安装必要的依赖包,确保项目支持 Less 预处理样式。使用以下命令安装 less 和 less-loader: npm install less less-lo…