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

Posted

技术标签:

【中文标题】在 React 中,一个类组件可以是无状态的,而现在使用 Hooks 一个函数组件可以是有状态的吗?【英文标题】:In React, Can a Class Component be Stateless and now with Hooks a Function Component be Stateful? 【发布时间】:2019-11-21 12:30:08 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

我正在使用过去 3 个月的钩子,它们在功能组件方面非常棒。 :)

以上是关于在 React 中,一个类组件可以是无状态的,而现在使用 Hooks 一个函数组件可以是有状态的吗?的主要内容,如果未能解决你的问题,请参考以下文章

React - 我应该在哪个组件中执行http请求?

关于React Hooks

当组件是无状态功能时,通过显示名称查找组件,使用 Enzyme

学习react 笔记四 (Hooks)

react redux中组件和容器的区别

学习react 笔记四 (Hooks)