框架篇-面试题7-React中hooks的优缺点是什么
迪丽瓦拉
2025-05-30 13:07:49
0次

e61362e229eae51b724f6f7046e24517.png

在react中,hooks是一个非常抽象的概念,对初学者,往往不是很友好,比较一下React中hooks的优缺点

优点

[1]. 代码的可读性强,使用hooks之前,发布/订阅自定义事件需要挂载到componentDidMount生命周期上面,然后需要在componentWillUnmount生命周期中清除,在使用hooks之后,通过useEffect,可以把componentDidMount生命周期,componentDidUpdate生命周期,还有componentWillUnmount生命周期集中在一起,方便代码的维护

[2]. 组件的层级更浅,在使用hooks之前,通常使用高阶组件Hoc的方法来实现多个组件共用状态,增强组件的功能,这样是增加了组件渲染的开销,影响了性能,但是在Hooks中可以使用自定义hooks组件useXXx()的方法将多个组件之间共用的状态放到自定义hooks就可以轻松的做到状态的共享

[3]. 不用在考虑class类组件this的指向问题了,在hooks组件中不需要使用this.state来获取数据和方法了

[4]. 可以从组件中提取状态逻辑,使得这些逻辑可以单独测试并复用,Hook使你在无需修改组件结构的情况下复用状态逻辑,这使得在组件间共享Hook变得更便捷,也就是可以大大减少冗余的代码,尤其是针对那些需要复用逻辑的场景

[5]. 没有破坏性改动,Hook不会影响对React概念的理解,Hook为已知的React概念提供了更直接的API,props,state,context,refs以及生命周期,同时Hook提供了一种强大的方式来组合它们

[6]. 更易于测试: 由于hooks是纯JavaScript函数,因此他们易于编写单元测试并模拟

缺点

[1]. 一个useEffect里面不能写太多东西,把每个不同的功能分给多个useEffect来使用,分成多个模块,把每个功能块分开来写遵循了软件设计当中的单一职责模式,hooks的useEffect只包括conponentDidMount,componentDidUpdate和componentWillUnmount这三个生命周期,对于其他的class类组件的生命周期却不支持

[2]. 不要在class组件中调用hook,这样是无效的,不能完全模拟类组件的生命周期,虽然可以使用useEffect hook来模拟,但是它使用起来需要更多的思考和规划

[3]. Hooks是一种新的特性,存在一些兼容性的问题,相对类组件方式,学习曲线比较陡峭,需要一些时间来适应这种编程模式

React中hooks的优点主要是提高了代码的可读性和性能,方便代码的维护和迭代,同时也可以更好地实现状态共享,但是也需要在使用中结合具体的场景和需求来选择最合适的方式,无非就是有了hook,多了一种技术方案选择

JS面试题18-说一说网页当中性能优化有哪些性能指标,如何量化

2023-03-14

81579f09edb2b9d83291858657ad04b3.jpeg

JS面试题17-比较一下服务端渲染与客户端渲染

2023-03-12

147bb2a958085814c5253d6b99f0e2d6.jpeg

JS篇面试题16-Es6中的事件扩展符在什么场景下使用

2023-03-11

13573ced48ae0eb53fde671e96469064.jpeg

JS篇面试题16-Es6中的事件扩展符在什么场景下使用

2023-03-10

f637c3cd9fe13388a5718a811d034729.jpeg

框架篇-面试题6-说一下Vue2与Vue3的钩子函数

2023-03-09

ed052255bce12b84752e8e34fa47c1b9.jpeg

一文了解互联网中的运营

2023-03-03

561402577144638bb9f992802841a610.jpeg

从改简历到面试需要知道的

2023-03-02

5c153e02cae11bdaf783182cd8c5b028.jpeg

入职前-求职者一定要提前了解的问题

2023-03-01

3ef840ce62d88899168b2bcf83378c70.jpeg

抄代码你总会吧?ChatGPT手把手教你写代码

2023-03-17

1cbf3b3325480a7bce4bdba265139f5f.jpeg

今年36岁,北邮硕士毕业,待过字节,阿里,最近被裁员,只能去外包

2023-03-17

ce5fb1fec04f177b3338c8d899d28edb.jpeg

8ca955909237fa1c61b0cfb205a4128a.jpeg

841317d1e473e1780d75844144b911b2.png

点击左下角查看更多

ecd231ea2316cacab231d7c3fbae0fc4.gif

相关内容

热门资讯

AI做攻略、“双向奔赴”……国... 本文转自:人民网人民网记者 许维娜今年国庆假期,AI(人工智能)成了不少年轻人的“旅行搭子”。行前做...
合肥的这个“梗”, 翻篇了 社交平台的评论区,曾长期流传一句专属于合肥的黑色幽默。有人问合肥哪里好玩,本地网友半开玩笑地回复:合...
7万+旅游中高层都在的群,今天... 做旅游这行,资源卡位、渠道互通、项目落地——往往就差一个“对的机会”。我们的行业社群已聚集70,00...
一场帐篷音乐节,如何让井研从“... 帐篷音乐节现场封面新闻记者 周洪攀10月的研溪湿地,晚风里裹着柑橘的清甜与民谣的回响。夜幕降临,10...
白鹤翩翩落星愿,上海迪士尼度假... 10月9日,世界候鸟日前夕,上海迪士尼度假区星愿公园的湖风里多了一分白鹤的灵动。三座白鹤雕塑正式揭幕...
成都锦江边赏初秋枫叶飘飘 目前,成都锦江边国华街枫叶树红了。近年来,国华街附近的几条街都栽种了红枫树,是城区较集中看枫叶的点位...
GBTA:商务旅行正在复苏,但... 亚太正在成为全球商务旅行增长的重要引擎。在经历疫情后的快速反弹之后,全球商务旅行正在进入一个新的增长...
从景区焕新到节赛引流 邹城双节... 齐鲁网·闪电新闻10月9日讯 中秋、国庆“双节”假期,邹城市文化和旅游局提前谋划、周密部署,立足自身...
江山如此多娇 且看石楼今朝 金秋十月,黄河岸畔秋意盎然,丰收盛会喜迎国庆。本次石楼国庆文旅活动以“江山如此多娇,且看石楼今朝”为...
海南国庆假期接待游客475.4... 2026年国庆假期,海南接待游客475.40万人次,较2025年增长13.1%,较2024年增长15...