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>;
};
相关推荐
信徒_几秒前
常用设计模式
java·单例模式·设计模式
程序员海军几秒前
2024 Nuxt3 年度生态总结
前端·nuxt.js
神仙别闹6 分钟前
基于C#实现的(WinForm)模拟操作系统文件管理系统
java·git·ffmpeg
小爬虫程序猿6 分钟前
利用Java爬虫速卖通按关键字搜索AliExpress商品
java·开发语言·爬虫
m0_7482567811 分钟前
SpringBoot 依赖之Spring Web
前端·spring boot·spring
组合缺一11 分钟前
Solon v3.0.5 发布!(Spring 可以退休了吗?)
java·后端·spring·solon
程序猿零零漆14 分钟前
SpringCloud 系列教程:微服务的未来(二)Mybatis-Plus的条件构造器、自定义SQL、Service接口基本用法
java·spring cloud·mybatis-plus
猿来入此小猿16 分钟前
基于SpringBoot在线音乐系统平台功能实现十二
java·spring boot·后端·毕业设计·音乐系统·音乐平台·毕业源码
愤怒的代码29 分钟前
Spring Boot对访问密钥加解密——HMAC-SHA256
java·spring boot·后端
带多刺的玫瑰30 分钟前
Leecode刷题C语言之切蛋糕的最小总开销①
java·数据结构·算法