当前位置: 首页 > 知识库问答 >
问题:

反应类组件与功能组件[重复]

桓喜
2023-03-14

所以我有点喜欢React,我一直在使用函数和类组件,我想知道它们之间的真正区别是什么?你应该在什么时候使用它们?钩子是否比类方法更强大、更有效?任何答案都将不胜感激,谢谢!

共有1个答案

穆鸿飞
2023-03-14

老实说,重要的是项目。若项目很大,我宁愿使用类,因为它已经被大量使用并且很容易发现bug,但钩子确实是优化代码的好方法。它占用更少的空间,但我有一段时间无法摆脱一个bug,所以我不得不将其更改为类组件。

 类似资料:
  • 问题内容: 我试图了解何时使用React功能组件和类,并从文档中阅读它们并没有真正详细介绍。当您希望类的特定功能构成组件时,能否给我下面的一些主要例子? 功能组件的功能较弱,但更简单,并且仅使用一个render()方法就类似于类组件。除非您需要仅在类中可用的功能,否则我们建议您改用功能组件。 问题答案: 您仅在以下情况下需要组件: 需要组件 状态 或 需要 生命周期方法 。例如等

  • 我正在使用一个名为React语义ui日期选择器的React模块,我相信它是基于React日期选择器的。不管怎样,这都是一个普通的问题。我的主类组件和日期选择器功能组件位于同一个文件中。日期选择器呈现并工作正常,但我不知道如何在主类组件中访问日期选择器的实际值。 代码的简化版本可以在下面看到,我只是控制台日志记录了几个变量的值。有人能给我一个建议,告诉我从类组件中访问所选日期选择器值的最佳方式吗?

  • 我是新的反应,我正在尝试组件功能的风格。我有简单的待办事项清单。我想使用style属性从列表中删除todo项。从Chrome调试模式中,我看不到对复选框更改的即时反应,而且该项也没有删除。。。对我来说,这是如何管理组件状态的问题。我希望得到一些指导。 App.js Todos.js TodoItem.js 我希望这个getStyle()将遵循状态。。。以某种方式

  • 问题内容: 我有React表单,其中有一个用于渲染下拉菜单的Component,因为这些选项来自API。但是,我无法访问嵌入式组件的引用。我正在整理我的第一个表格,并试图了解解决此问题的最佳方法。 问题答案: 最好将视为回调属性,并且不再依赖于Object。如果确实使用对象,请避免访问后代组件。您应该将其视为私有访问器,而不应将其视为组件API的一部分。仅将组件实例上公开的方法视为其公共API。

  • 好的,我有点困惑于如何使用enzyme/jest测试我的组件的功能。仍在学习如何测试我的组件——我可以编写简单的测试,但现在我需要让它们更复杂。 我想知道测试组件函数是否被正确调用以及它们是否按预期更新状态道具的最佳方法。我发现很棘手的是,我的函数和状态都存在于我的组件的道具中。 如果我需要使用间谍,我想最好知道如何使用笑话,但是如果像西农或贾斯敏这样的特工更适合这份工作,我愿意接受(只要让我知道

  • 我有下面的类组件- https://pastebin.com/WigZksAq 我想将面板移动到单独的文件中- 但是我不明白如何修改主类组件的状态。

  • 我目前有我的项目文件夹 在我的主页组件中,我试图将整个配置文件目录导入这样一个对象(根据需要动态加载每个组件,但并非所有组件都将加载) 而且 但是我在编译器中得到一个错误,说模块未找到:无法解析“/轮廓 我想明确说明,配置文件是一个包含组件的文件夹,我想在我的app.js文件中选择所有要动态调用的组件。 为什么会这样?

  • 问题内容: 我知道有时需要设置,尤其是在处理生产版本时。我想知道如何使用我的功能组件进行设置-是否可以/允许? 这是我在班级组件中得到的: 我如何在无状态组件中执行相同的操作? 问题答案: 说的文档 该字符串用于调试消息。通常,您不需要显式设置它,因为它是从定义组件的函数或类的名称推断出来的。如果要出于调试目的显示其他名称,或者在创建高阶组件时,可能需要显式设置它,有关详细信息,请参见包装显示名称