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>;
};
相关推荐
典典分享指南3 分钟前
短视频分镜提示词:让 AI 出片的产品口播
java·c#·bash·composer·symfony
IT_Octopus5 分钟前
G1 与 GC 日志入门课程(以本次离线菜单 Full GC 事故为教材)
java·jvm
小磊哥er7 分钟前
深入解构Claude Code - 第 2 篇 · 启动的秘密
javascript·ai编程
cfm_291412 分钟前
ReentrantLock 中 lock 与 tryLock 核心区别
java
.Hypocritical.17 分钟前
Tomcat本地部署+远程服务器部署超详细教程
java·服务器·tomcat
雪芽蓝域zzs19 分钟前
第八节:Element Plus 基础、封装通用组件 + 路由守卫
前端·vue.js
码视野21 分钟前
基于 Spring Boot + Vue3 的【智慧公厕微负压排风除臭与客流人感空间占用导引中台】设计与实现(含PRD/三端高保真源码/大屏)
前端·vue.js·人工智能·spring boot·后端
2601_9620629424 分钟前
Spring Boot入门——Spring Boot项目的创建
java·数据库·spring boot
计算机魔术师39 分钟前
刚赔了15亿又来被告?索尼华纳联手把Anthropic告上法庭
前端
笑霸final41 分钟前
不用上传服务器!用 Vue3 + ONNX Runtime Web 在浏览器本地实现智能抠图
运维·前端·图像处理·ai·onnx·canva可画·web性能优化