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>;
};
相关推荐
meilindehuzi_a1 小时前
从零理解并实现 RAG:用 LangChain.js 构建语义检索问答系统
开发语言·javascript·langchain
wuqingshun3141592 小时前
什么是责任链模式,一般用在什么场景?
java·责任链模式
世界哪有真情2 小时前
拿人类意识卡 AI?等于用 bug 验收正式产品
前端·人工智能·后端
:-)2 小时前
算法-归并排序
java·开发语言·数据结构·算法·排序算法
鱼樱前端3 小时前
别再自己拼凑了!这款 Vue 3.5+ 严肃产品级组件库,把 AI 对话、工作流和复杂数据全包了!
javascript·vue.js·github
wuqingshun3141593 小时前
说一下消息队列的模型有哪些?
java
Listen·Rain3 小时前
Vue3:setup详解
前端·javascript·vue.js
fīɡЙtīиɡ ℡4 小时前
布隆过滤器
java
Patrick_Wilson4 小时前
修好 bug 只是开始:一次由监控需求反向重构日志结构的复盘
前端·监控·数据可视化
yaoxin5211234 小时前
462. Java 反射 - 获取声明类与封闭类
java·开发语言·python