React基础巩固日志1

news/2024/6/1 22:45:15 标签: react.js, 前端, 前端框架

书写了一篇vue3的基础构建之后,不能带着各位一起学习vue3了,因为我要面试上海的前端岗位了,所以从现在开始,我要带着大家一起学习React了。
以下是我使用react书写的要掌握的react的知识点:
**加粗样式
**
那么下面我们就一一通过小demo去逐渐掌握react这个框架,让我们在求职的道路上能够一帆风顺。
1、学习如何创建功能组件和类组件,以及它们之间的区别 使用react框架书写一个属于react的小demo
这个示例将展示一个计数器,它使用类组件来维护状态,并使用函数组件来显示计数器按钮
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
总结:函数组件传值 props里面将text在App组件中初始化之后将值传递给类组件,类组件在拿到值之后将数据渲染到页面上,很显然,类组件是多功能化的,不仅仅可是实现继承祖先的数据,还可以将数据实现渲染。
效果展示:
在这里插入图片描述

下面是类组件和函数组件的官方区别:
主要要以下几个区别:

(1)语法不同、设计思想不同
(2)生命周期、状态变量
(3)复用性:
(4)优缺点

一、语法不同、设计思想不同

函数式组件是函数式编程思想,而类组件是面向对象编程思想。面向对象编程将属性和方法封装起来,屏蔽很多细节,不利于测试。

二、生命周期、状态变量

类式组件:使用state对象定义状态变量,有诸如componmentDidMount、shouldComponentUpdate等生命周期钩子函数;

函数式组件:没有this,使用一系列的内置hooks实现对应的功能,比如使用useState创建状态变量,使用useEffect实现类似于componmentDidMount、shouldComponentUpdate等生命周期钩子函数的功能。

三、复用性

类式组件:使用hoc(高阶组件)、render propss实现组件的逻辑复用、拓展组件的功能。

函数式组件:使用自定义hooks实现组件的逻辑复用。

四、优缺点

函数式组件:

优点:

相对于类式组件,一般情况而言,代码量更少,代码更简洁,可读性更强;
更易于拆分组件和测试;
缺点:

在业务逻辑巨复杂,状态依赖关系错乱的情况下,使用useEffect、useMemo等hooks,对其依赖项数组的思考为开发者带来了更大的心智负担;
不具备处理错误边界等业务情况的hooks;
类式组件:

优点:

功能完备,具有componentDidsCatch、getDerivedStateFromError等钩子函数处理边界错误;
缺点:

在复用性上,hoc组件等会出现诸如嵌套地狱、重名props被覆盖、难以拆分和测试等问题;
五、总结

类式组件和函数式组件各有其优点,关键是看自己的需求是什么;如果你开发的业务逻辑和状态并不复杂,那么类式组件可能会更合适;

但是如果你要处理错误边界或者是业务逻辑巨复杂的情况,那么类式组件更合适;

其实无论是什么技术开发,衡量代码是否优雅的标准无非是开发效率(复用性、易用性)、代码性能、是否易于测试和维护;当然三者常常不可兼得,关键看自己需求是什么


http://www.niftyadmin.cn/n/5273129.html

相关文章

【具身智能评估7】ProcTHOR: Large-Scale Embodied AI Using Procedural Generation

论文标题:ProcTHOR: Large-Scale Embodied AI Using Procedural Generation 论文作者:Matt Deitke, Eli VanderBilt, Alvaro Herrasti, Luca Weihs, Jordi Salvador, Kiana Ehsani, Winson Han, Eric Kolve, Ali Farhadi, Aniruddha Kembhavi, Roozbeh M…

【uniapp小程序-上拉加载】

在需要上拉加载的页面的page.json上添加红框框里面的 onReachBottom() {if(this.commentCurrent<this.commentTotal){this.commentCurrent 1; this.commentList();this.status loading;}else{this.status ;} }, methods:{commentList(){let params {courseid:this.cour…

反爬虫介绍及其处理方法

反爬虫机制 封IP&#xff1a;监控短时间内同一地址的请求次数过大登录及验证码&#xff1a;对于监控后封IP之后短时间内继续的大量请求&#xff0c;要求登陆或验证码通过验证之后才能继续进行。健全账号体制&#xff1a;即核心数据只能通过账号登录后才能进行访问。动态加载数…

MindOpt工具是如何做到配套使用的?请看此篇

Mindopt 介绍 MindOpt是阿里巴巴达摩院决策职能实验室研发的专注于优化领域&#xff0c;提供智能优化解决方案的品牌。主要的目标是帮助客户通过先进的优化算法和技术&#xff0c;实现业务流程的最佳化&#xff0c;提升效率&#xff0c;降低成本&#xff0c;并最大化业务价值。…

【HCIP学习记录】OSPF之DD报文

1.OSPF报文格式 24字节 字段长度含义Version1字节版本&#xff0c;OSPF的版本号。对于OSPFv2来说&#xff0c;其值为2。Type1字节类型&#xff0c;OSPF报文的类型&#xff0c;有下面几种类型&#xff1a; 1&#xff1a;Hello报文&#xff1b;● 2&#xff1a;DD报文&#xff1…

第六章--- 实现微服务:匹配系统(下)

0.写在前面 这一章终于完了&#xff0c;但是收尾工作真的好难呀QAQ&#xff0c;可能是我初学的缘故&#xff0c;有些JAVA方面的特性不是很清楚&#xff0c;只能依葫芦画瓢地模仿着用。特别是JAVA的注解&#xff0c;感觉好多但又不是很懂其中的原理&#xff0c;只知道要在某个时…

第9章:深度探讨知识问答系统评测:智能背后的挑战与技术方案

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

如何使用 TailwindCSS 画一条0.5px的线条

背景 在移动端项目&#xff0c;一般为了让线条看起来更细、更锐利&#xff0c;此时使用0.5px的线条是非常合适的。那么如何使用TailwindCSS画一条0.5px的线条呢&#xff1f; 在实现这个需求的时候&#xff0c;首先去TailwindCSS官网查了一下border有没有对应的内置工具类&…