当前位置:首页 > React

react组件如何传输值

2026-01-24 08:11:18React

父组件向子组件传值

通过 props 传递数据,父组件在子组件标签上定义属性,子组件通过 props 接收。

父组件代码示例

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

子组件代码示例

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

子组件向父组件传值

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

父组件代码示例

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

子组件代码示例

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

兄弟组件间传值

通过状态提升或全局状态管理(如 Context、Redux)。将共享状态定义在共同的父组件中,通过 props 传递。

共享状态的父组件代码示例

function ParentComponent() {
  const [sharedData, setSharedData] = useState("Initial Data");
  return (
    <>
      <SiblingA data={sharedData} />
      <SiblingB onUpdateData={setSharedData} />
    </>
  );
}

使用 Context API 跨层级传值

创建 Context 并包裹组件树,任意子组件可通过 useContext 获取值。

Context 定义示例

const MyContext = createContext();

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

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

使用 Redux 全局状态管理

通过 store 存储数据,组件通过 useSelector 读取和 useDispatch 更新状态。

Redux 示例代码

// Store 配置
const store = configureStore({
  reducer: {
    data: dataReducer,
  },
});

// 组件中使用
function Component() {
  const data = useSelector((state) => state.data);
  const dispatch = useDispatch();
  const updateData = () => dispatch({ type: "UPDATE_DATA" });
  return <button onClick={updateData}>Update</button>;
}

通过路由参数传值

使用 react-router-dom 传递 URL 参数或状态。

路由传参示例

react组件如何传输值

// 传递参数
<Link to="/user/123">User</Link>

// 接收参数
function UserPage() {
  const { id } = useParams();
  return <div>User ID: {id}</div>;
}

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

相关文章

react架构如何

react架构如何

React 架构核心概念 React 的架构围绕组件化、虚拟 DOM 和单向数据流设计。组件是构建用户界面的独立模块,分为函数组件和类组件。虚拟 DOM 通过高效的 Diff 算法减少直接操作真实 D…

react如何开发

react如何开发

React 开发基础步骤 安装 Node.js 和 npm/yarn 确保系统已安装 Node.js(包含 npm)或 Yarn。React 项目依赖这些工具管理包和运行脚本。官方推荐使用 Node.…

react如何调度

react如何调度

React 调度机制概述 React 的调度机制通过 Fiber 架构 和 Scheduler 模块实现任务优先级管理与时间切片(Time Slicing),确保高优先级更新(如用户交互)能快速响应,…

java如何react

java如何react

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

react如何检测窗口

react如何检测窗口

监听窗口大小变化 使用useEffect钩子和resize事件监听窗口尺寸变化。在组件挂载时添加事件监听器,卸载时移除监听器以避免内存泄漏。 import { useState, useEffect…

vue table组件实现

vue table组件实现

Vue 表格组件实现方案 基础表格实现 使用<table>标签结合v-for指令渲染数据是最简单的实现方式: <template> <table> &…