在 React 中,Class 组件可以是无状态的,而现在使用 Hooks 函数组件可以是有状态的吗?

In React, Can a Class Component be Stateless and now with Hooks a Function Component be Stateful?

在引入 Hooks 之前,对我来说有状态组件和无状态组件之间有明显的区别。但是,对于 React Hooks,现在是否可以安全地说函数组件可以是无状态的或有状态的,具体取决于它的使用方式(如果使用 useState 例如 and/or 使用 using are Hooks 是有状态的)?

此外,如果未使用状态 and/or 使用生命周期方法,是否可以将 class 组件(扩展到 React 组件基础 class)视为无状态?

我一直在阅读有关无状态与有状态(class 与函数)组件的 Whosebug 上的文章,但在 React v16.8 之前回答了很多问题。

Class 如果从未使用状态,组件可以始终是无状态的。函数式组件最初只是作为一种更简单的方式来定义不需要状态的组件,但是随着钩子的引入,它们现在具有了有状态的能力。

所以回答你的问题是,class 组件和功能组件都可以是有状态的和无状态的。然而,随着钩子的引入,React 开发人员表示他们相信所有组件最终都会使用钩子实现功能化,所以如果我是你,我会尝试使用函数式组件。