首页 > 解决方案 > 在 React 中,一个类组件可以是无状态的,而现在使用 Hooks 一个函数组件可以是有状态的吗?

问题描述

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

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

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

标签: reactjsreact-hooksstatelessstateful

解决方案


如果从不使用状态,类组件可以始终是无状态的。功能组件最初仅用作定义不需要状态的组件的更简单方法,但随着钩子的引入,它们现在具有有状态的能力。

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


推荐阅读