React(二)


文章目录

  • 项目地址
  • 七、数据流
    • 7.1 子组件传递数据给父组件
      • 7.1.1 方式一:給父设置回调函数,传递给子
      • 7.1.2 方式二:直接将父的setState传递给子
    • 7.2 给props传递jsx
      • 7.2.1 方式一:直接传递组件给子类
      • 7.2.2 方式二:传递函数给子组件
    • 7.3 props类型验证
    • 7.4 props的多层传递
    • 7.5 className的传递以及合并
  • 八、State进阶
    • 8.1 不同组件之间的状态共享
      • 8.1.1 组合组件
      • 8.1.2 找到公共父组件设置状态
      • 8.1.3 根据组件的功能添加事件
      • 8.1.4 两个子组件的设置
    • 8.2 获取上一次的状态,解决异步问题
    • 8.3 useReducer集中处理状态更新逻辑
  • 九、处理组件错误
    • 9.1 处理组件错误
    • 9.2 组件懒加载:分割页面,提高页面速度
    • 9.3 引入svg图标
      • 9.3.1 方式一:和图片导入方式一样
      • 9.3.2 方式二:将svg文件当作组件导入
    • 9.4 使用绝对路径导入
    • 9.5 使用Children防止过度嵌套
    • 9.6 受控组件和非受控组件
      • 9.6.1 受控组件
      • 9.6.2 非受控组件
  • 十、自定义组件


项目地址

  • 教程作者:
  • 教程地址:
  • 代码仓库地址:
  • 所用到的框架和插件:

七、数据流

7.1 子组件传递数据给父组件

7.1.1 方式一:給父设置回调函数,传递给子

父组件的设置

在这里插入图片描述
子组件
在这里插入图片描述

7.1.2 方式二:直接将父的setState传递给子

···

  • 该方法父子严重耦合,复用性低,适合父子严重绑定的组件

7.2 给props传递jsx

定义个导航条,可以是组件形式,也可以直接是jsx const nav = <div</div>

//导航组件
function Nav() {return (<div className="menu"><a href="/">首页</a><a href="/product">产品</a><a href="/user">用户</a></div>);
}

7.2.1 方式一:直接传递组件给子类

父类拥有导航组件的控制权

在这里插入图片描述

  • 子组件使用:直接使用
function Layout({ nav, children }) {return (<div className="container"><nav>{nav}</nav><main>{children}</main></div>);
}

7.2.2 方式二:传递函数给子组件

由于传递的组件以函数形式传递,控制权在子
在这里插入图片描述

  • 子组件使用:加了反斜杠,以组件形式使用
function Layout({ Nav, children }) {return (<div className="container"><nav>{<Nav />}</nav><main>{children}</main></div>);
}

7.3 props类型验证

  1. 子组件添加验证
    在这里插入图片描述
  • 可以使用TypeScripts来验证

7.4 props的多层传递

  1. 祖父组件需要传递数据
function App() {const userData = {count: 32.95,rate: "↑8.98%",};return (<main className="container"><UserDataCard message="hello world" userData={userData} /></main>);
}
  1. 中间层接受数据,并传递给下一层

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/20012.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

项目管理的核心指南:四管八理

01项目管理核心&#xff1a;四管八理 项目管理的复杂性在于其多变的细节&#xff0c;但一旦掌握了核心框架和方法论&#xff0c;便能轻松应对。以下是项目管理的“四管八理”框架&#xff0c;旨在帮助项目经理构建自己的管理方法论。 02项目管理“四管” 1.团队协调 项目成功…

消防设施操作员高频考点

1、职业是指从业人员为获取主要生活来源所从事的社会工作类别。&#xff08;正确&#xff09; 2、职业活动以获得现金或实物等报酬为目的&#xff0c;这属于职业特征的&#xff08;A&#xff09;。 A、目的性 B、社会性 C、稳定性 D、规范性 解析&#xff1a;…

传输层协议TCP

一.TCP协议格式 对于传输层协议我们之前是学过了UDP&#xff0c;对于传输层协议是存在了一定的了解的&#xff0c;所以现在我们再来看TCP协议格式&#xff1a; 我们之前学过UDP的报文格式&#xff0c;所以源端口和目的端口是不需要进行再次讲解的&#xff0c;对于32序号和确认序…

【面试题】接口怎么测试?如何定位前后端的Bug?

接口怎么测试&#xff1f; 接口测试用来验证不同软件组件之间的交互是否正常。包括验证数据传输&#xff0c;参数传递&#xff0c;我在多个项目中有过测试接口的经验。&#xff08;… 当进行接口测试时&#xff0c;会使用Postman和Python的Requests库。首先根据接口文档设计测…

【单点知识】基于PyTorch讲解自动编码器(Autoencoder)及其变种

文章目录 0. 前言1. 自动编码器的基本概念1.1 定义1.2 目标1.3 结构 2. PyTorch实现自动编码器2.1 导入必要的库2.2 定义自动编码器模型2.3 加载数据2.4 训练自动编码器 3. 自动编码器的意义4. 自动编码器的应用4.1 图像处理4.2自然语言处理&#xff1a;4.3推荐系统&#xff1a…

Redis篇

Redis使用场景 一、缓存穿透: 一个get请求: api/news/getById/1 1.缓存穿透:查询一个不存在的数据&#xff0c;mysql查询不到数据也不会直接写入缓存&#xff0c;导致每次请求都直接请求查询数据库&#xff0c;导致数据库的压力增大从而宕机 2.解决方案一:缓存空数据&#x…

每日一练:前缀和-矩阵区域和

1314. 矩阵区域和 - 力扣&#xff08;LeetCode&#xff09; 题目要求&#xff1a; 给你一个 m x n 的矩阵 mat 和一个整数 k &#xff0c;请你返回一个矩阵 answer &#xff0c;其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和&#xff1a; i - k < r &…

革新车间照明,分布式IO模块引领智能制造新纪元

在智能制造的浪潮中&#xff0c;每一个细节的优化都是推动生产效率与能耗管理迈向新高度的关键。车间照明系统&#xff0c;作为生产环境中不可或缺的一环&#xff0c;其智能化升级正成为众多企业转型升级的重要着力点。 一、从传统到智能&#xff1a;照明系统的变革之旅 传统…

Oracle19C AWR报告分析之Operating System Statistics

Oracle19C AWR报告分析之Operating System Statistics 一、分析数据二、详细分析三、总结建议 Oracle 19C的AWR&#xff08;Automatic Workload Repository&#xff09;报告中的Operating System Statistics部分提供了操作系统层面的性能统计数据。这些指标对于分析数据库性能的…

项目进度计划表:详细的甘特图的制作步骤

甘特图&#xff08;Gantt chart&#xff09;&#xff0c;又称为横道图、条状图&#xff08;Bar chart&#xff09;&#xff0c;是一种用于管理时间和任务活动的工具。 甘特图由亨利劳伦斯甘特&#xff08;Henry Laurence Gantt&#xff09;发明&#xff0c;是一种通过条状图来…

【PyTorch][chapter 28] 揭秘 Transformer:缩放定律指南

概括 我们介绍了 LLM 的各种缩放定律&#xff0c;研究了模型损失如何随着训练数据和参数数量的增加而变化。讨论包括对用于解释 LLM 缩放定律的 IsoLoss 轮廓和 IsoFLOPs 切片的解释&#xff0c;从而为优化计算资源提供了见解。 最后&#xff0c;我们讨论了 FLOP 和 FLOPS 的概…

JavaSE(十四)——文件操作和IO

文章目录 文件操作和IO文件相关概念Java操作文件文件系统操作文件内容操作字节流FileOutputStreamFileInputStream代码演示 字符流FileWriterFileReader代码演示 缓冲流转换流 案例练习 文件操作和IO 文件相关概念 文件 通常指的是包含用户数据的文件&#xff0c;如文本文件、…

通过 SSH 管理 WordPress 网站的文件和目录

对于已经具备SSH基础知识的WordPress用户&#xff0c;进一步学习如何通过SSH命令管理网站的文件和目录至关重要。本文将介绍一些初级级别的SSH命令&#xff0c;帮助你更高效地管理WordPress网站的文件系统。 什么是 SSH 及其优势 SSH&#xff08;Secure Shell&#xff09;是一…

Cargo Rust 的包管理器

Cargo->Rust 的包管理器 Cargi简介Cargo 的主要功能1. 创建项目2. 管理依赖3. 构建项目4. 运行项目5. 测试代码6. 检查代码7. 生成文档8. 发布和分享包 Cargo 的核心文件1. Cargo.toml2. Cargo.lock **Cargo 的生态系统** 常用命令总结Hello, Cargo! 示例 Cargi简介 Cargo …

VTK知识学习(10)- 渲染引擎

1、前言 vtkProp; vtkAbstractMapper; vtkProperty; vtkCamera; vtkLight; vtkRenderer; vtkRenderWindow; vtkRenderWindowInteractor; vtkTransform; vtkLookupTable;………… 这些类都是与数据显示或渲染相关的。 用计算机图形学的专业词汇来说&#xff0c;就是它…

汽车安全再进化 - SemiDrive X9HP 与环景影像系统 AVM 的系统整合

当今汽车工业正面临著前所未有的挑战与机遇&#xff0c;随著自动驾驶技术的迅速发展&#xff0c;汽车的安全性与性能需求日益提高。在这样的背景下&#xff0c;汽车 AVM&#xff08;Automotive Visual Monitoring&#xff09;标准应运而生&#xff0c;成为促进汽车智能化和安全…

STL——vector(1)

博客ID&#xff1a;LanFuRenC系列专栏&#xff1a;C语言重点部分 C语言注意点 C基础 Linux 数据结构 C注意点 今日好题 声明等级&#xff1a;黑色->蓝色->红色 欢迎新粉加入&#xff0c;会一直努力提供更优质的编程博客&#xff0c;希望大家三连支持一下啦 目录 尾…

typecho博客主题美化总结篇—php单文件相册管理

看过我前面两期博客的都知道&#xff0c;最近lz在专心建设自己的博客。因为是基于typecho,用的朴素简洁的博客主题&#xff0c;就注定了各个模块都需要自己亲力亲为的去设计&#xff0c;开发。不过这种经由自己手从无到有&#xff0c;从朴素空白到唯美充实的过程确实也很值得期…

每日一练:【动态规划算法】斐波那契数列模型之

1. 第 N 个泰波那契数&#xff08;easy&#xff09; 1. 题目链接&#xff1a;1137. 第 N 个泰波那契数 2. 题目描述 3.题目分析 这题我们要求第n个泰波那契Tn的值&#xff0c;很明显的使用动态规划算法。 4.动态规划算法流程 1. 状态表示&#xff1a; 根据题目的要求及公…

SQL DQL查询操作

1.基本查询 select name,employee.workno,employee.age from employee;select employee.idcard as 身份证号 from employee;select employee.entrydate from employee; select distinct employee.entrydate from employee; 2.条件查询 where select * from employee where i…