React 组件通信

1.从父组件向子组件传递参数:

父组件可以通过props将数据传递给子组件。子组件通过接收props来获取这些数据。

复制代码
// 父组件
const ParentComponent = () => {
  const data = 'Hello, Child!';
  return <ChildComponent childData={data} />;
};
​
// 子组件
const ChildComponent = ({ childData }) => {
  return <div>{childData}</div>;
};

2、避免直接修改父组件的props:

子组件不应该直接修改从父组件传递过来的props。如果需要更新数据,应该通过父组件来管理状态,并通过回调函数将更新后的数据传递给子组件。

复制代码
// 父组件
const ParentComponent = () => {
  const [data, setData] = useState('Hello, Child!');
  const handleUpdateData = (newData) => {
    setData(newData);
  };
  return <ChildComponent childData={data} onUpdateData={handleUpdateData} />;
};
​
// 子组件
const ChildComponent = ({ childData, onUpdateData }) => {
  const handleButtonClick = () => {
    onUpdateData('New Data');
  };
  return (
    <div>
      <div>{childData}</div>
      <button onClick={handleButtonClick}>Update Data</button>
    </div>
  );
};

3.使用回调函数传递参数:

当你需要从子组件向父组件传递参数时,可以使用回调函数作为props传递给子组件。子组件通过调用这个回调函数来传递数据。

复制代码
// 父组件
const ParentComponent = () => {
  const [data, setData] = useState('Initial Data');
  return <ChildComponent onChildDataChange={setData} />;
};
​
// 子组件
const ChildComponent = ({ onChildDataChange }) => {
  const handleDataChange = (newData) => {
    onChildDataChange(newData);
  };
  return <button onClick={() => handleDataChange('New Data')}>Change Data</button>;
};
相关推荐
Derek_Smart12 分钟前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
闲云一鹤27 分钟前
nginx 快速入门教程 - 写给前端的你
前端·nginx·前端工程化
QCY1 小时前
「完全理解」1 分钟实现自己的 Coding Agent
前端·agent·claude
NE_STOP1 小时前
MyBatis-mybatis入门与增删改查
java
一拳不是超人1 小时前
Electron主窗口弹框被WebContentView遮挡?独立WebContentView弹框方案详解!
前端·javascript·electron
anyup2 小时前
🔥2026最推荐的跨平台方案:H5/小程序/App/鸿蒙,一套代码搞定
前端·uni-app·harmonyos
雮尘2 小时前
如何在非 Claude IDE (TARE、 Cursor、Antigravity 等)下使用 Agent Skills
前端·agent·ai编程
icebreaker2 小时前
Weapp-vite:原生模式之外,多一种 Vue SFC 选择
前端·vue.js·微信小程序
icebreaker2 小时前
重走 Vue 长征路 Weapp-vite:编译链路与 Wevu 运行时原理拆解
前端·vue.js·微信小程序
wuhen_n2 小时前
代码生成:从AST到render函数
前端·javascript·vue.js