首页 > 解决方案 > 使用反应钩子和功能组件

问题描述

我对 React 中的钩子和功能组件有概念上的疑问。

从概念上讲,您可以拥有 3 种类型的组件:

现在,在“功能组件”上使用钩子会为其添加状态,基本上我们正在将其转换为“在引擎盖下”的类组件,这打破了纯度的概念(现在接收 2 个道具不能保证输出将是相同的对于不同的执行,因为它可以被状态覆盖)。

所以问题是:

如果我在功能组件上使用钩子,它本身就不再是“功能组件”,而是“具有状态的功能组件”?

标签: reactjsreduxreact-hooks

解决方案


如果我在功能组件上使用钩子,它本身就不再是“功能组件”,而是“具有状态的功能组件”?

正确的!无状态(功能)组件现在可以是有状态的。疯了吧?

就个人而言,我认为他们在 Hooks 的事情上走得太远了。UseState 很好,但不应该用于除了简单的组件之外的任何东西。大多数时候,当事情变得更复杂时,我发现自己会转换回有状态组件。


推荐阅读