当前位置: 首页 > news >正文

百度免费发布信息网站手机网投网站建设

百度免费发布信息网站,手机网投网站建设,深圳网站建设推广方法,赣州人才网最新招聘信息2022年组件间的通信,就像人与人的对话——单向传递是尊重,状态提升是信任,而全局共享则是无需言语的默契。 本文是《从0死磕全栈》系列第6篇,系统梳理 React + TypeScript 开发中六大核心组件通信方式,涵盖父子传值、兄弟通信、跨层级共享、全局状态管理及 Refs 直接操控,助你根…

组件间的通信,就像人与人的对话——单向传递是尊重,状态提升是信任,而全局共享则是无需言语的默契。

本文是《从0死磕全栈》系列第6篇,系统梳理 React + TypeScript 开发中六大核心组件通信方式,涵盖父子传值、兄弟通信、跨层级共享、全局状态管理及 Refs 直接操控,助你根据场景精准选择,告别“props 一层层传到秃头”的困境。


一、第一种:父组件向子组件传值(Props)

✅ 适用场景

父组件需要向子组件传递静态或动态数据(如标题、配置、初始值)。

✅ 实现方式

通过 props 单向传递,并使用 TypeScript 接口定义类型,确保安全性和可维护性。

// 父组件
function Parent() {const message: string = "Hello from Parent!";return <Child message={message} />;
}// 子组件 Props 类型定义
interface ChildProps {message: string;
}// 子组件
function Child({ message }: ChildProps) {return <h1>{message}</h1>; // 输出: Hello from Parent!
}

🔍 关键要点

  • 单向数据流:数据只能从父流向子,符合 React 设计哲学。
  • TypeScript 友好:使用 interface 定义 props 类型,编译期校验,避免运行时错误。
  • 可扩展性强:新增属性只需在接口中添加,不影响逻辑。

二、第二种:子组件向父组件传值(回调函数)

✅ 适用场景

子组件触发事件(如按钮点击、表单提交)需通知父组件并传递数据。

✅ 实现方式

父组件传递一个回调函数作为 prop,子组件调用该函数并传参。

// 父组件
function Parent() {const handleChildData = (data: string): void => {console.log("Data from Child:", data); // 输出: Data from Child: Hello from Child!};return <Child onSendData={handleChildData} />;
}// 子组件 Props 类型
interface ChildProps {onSendData: (data: string) => void;
}// 子组件
function Child({ onSendData }: ChildProps) {const sendData = (): void => {onSendData("Hello from Child!");};return <button onClick={sendData}>Send Data</button>;
}

💡 比喻理解

父组件提供了一个“收件箱”(回调函数),子组件把信息“投递”进去,父组件收到后自动处理。


三、第三种:兄弟组件通信(状态提升)

✅ 适用场景

两个同级组件(兄弟)需要共享和同步数据(如 A 显示内容,B 修改内容)。

✅ 实现方式

将共享状态提升到共同父组件,再通过 props 分别传递给子组件。

// 父组件
function Parent() {const [sharedData, setSharedData] = useState<string>("Initial Data");return (<div><SiblingA data={sharedData} /><SiblingB onUpdateData={setSharedData} /></div>);
}// 兄弟组件 A(显示)
interface SiblingAProps {
http://www.dtcms.com/a/442208.html

相关文章:

  • C语言内存管理与命令行参数详解
  • C4D R20新增功能之域的本质及域界面讲解
  • Windows取证
  • 市级数字政府大数据资源平台建设和实施方案PPT(61页)
  • 稀疏检索模型(Sparse Retrieval model)
  • [linux仓库]肝爆进程通信:匿名管道、命名管道、进程池核心原理与实战【万字长文】
  • 【论文阅读】-《Sparse Adversarial Attack via Perturbation Factorization》
  • flash类网站开发定制网络教研系统
  • Fine-Grained Auditing 在 ABP vNext 的落地
  • 新手用PPT百科找模板:简单好用的实操分享!
  • Next.js客户端组件与服务端组件:为什么app路由(App Route)成为新标准?use client、服务端组件嵌套客户端组件
  • 做ppt医学专业图片网站门户网站建设自查整改
  • Product Hunt 每日热榜 | 2025-10-03
  • 监管视角下的大数据信用报告:合规、透明与安全的博弈
  • 7. Pandas 字符串与类别数据处理
  • 【iOS】简单的四则运算
  • Tomcat的CATALINA_BASE
  • 嵌入式 Tomcat 与 Spring MVC 集成
  • MyBatis 进阶
  • 软件设计师-软件工程-软件过程模型
  • 论坛网站方案手机网站建设的趋势
  • LeetCode每日一题——单调数列
  • LeetCode 100题(10题)
  • 后端开发网站做一些什么建设部网站官网 造价鉴定
  • day52-Zabbix(第一部分)
  • 依托Java和百度地图实现长沙市热门道路与景点实时路况检索的实践探索
  • 7-1-查询练习
  • Numpy 手搓线性回归
  • 昆明网站服务器湖北seo推广
  • 医院网站建设怎么样盐城网站建设效果