reactjs - 使用反应钩子和功能组件
问题描述
我对 React 中的钩子和功能组件有概念上的疑问。
从概念上讲,您可以拥有 3 种类型的组件:
- 类组件
- 功能组件
- pureComponents(使用反应备忘录或扩展 PurComponent)
现在,在“功能组件”上使用钩子会为其添加状态,基本上我们正在将其转换为“在引擎盖下”的类组件,这打破了纯度的概念(现在接收 2 个道具不能保证输出将是相同的对于不同的执行,因为它可以被状态覆盖)。
所以问题是:
如果我在功能组件上使用钩子,它本身就不再是“功能组件”,而是“具有状态的功能组件”?
解决方案
如果我在功能组件上使用钩子,它本身就不再是“功能组件”,而是“具有状态的功能组件”?
正确的!无状态(功能)组件现在可以是有状态的。疯了吧?
就个人而言,我认为他们在 Hooks 的事情上走得太远了。UseState 很好,但不应该用于除了简单的组件之外的任何东西。大多数时候,当事情变得更复杂时,我发现自己会转换回有状态组件。
推荐阅读
- android - Android 显示错误:尝试在空对象引用上调用接口方法“int java.util.List.size()”
- camera - 如何将相机输出更改为屏幕显示?
- asynchronous - c# Ftp 文件上传异步 | 同步
- google-api - 如何在没有 oAuth2.0 的情况下使用带有驱动器 API 密钥的谷歌驱动器文件列表 API?
- node.js - How to send http(s) requests with Node.js to a Node.js server hosted with LocalTunnel
- java - java.lang.NoSuchMethodError: org.apache.poi.util.POILogger.log(ILjava/lang/Object;)V
- c - 使用 MPI_Send 和 MPI_Recv 实现 MPI_Scatter 的问题
- java - 从用户那里获取字符输入
- javascript - 在 BrowserRouter 组件中更新 props 时,不会调用 react-router Route 组件构造函数
- html - 用 CSS 包装 svg 元素