挂钩如何更换组件?



据我所知,钩子只是向function组件添加状态(和生命周期方法(的一种方式。

此常见问题解答:

从长远来看,我们预计 Hooks 将成为人们编写 React 组件的主要方式。
https://reactjs.org/docs/hooks-faq.html#should-i-use-hooks-classes-or-a-mix-of-both

和这个文档片段:

钩子允许您根据相关部分
将一个组件拆分为较小的函数 https://reactjs.org/docs/hooks-intro.html

让我作为 React 初学者有点困惑。

就好像我必须从钩子而不是元素组件的角度来考虑我的应用程序。

React 没有删除组件,但引用暗示钩子将取代 组件作为代码重用的主要来源。

在 React 中,元素和组件还能作为主要抽象来谈论吗?

组件的概念并没有消失,只是它们的编写方式正在发生变化。

你引用的第二行

钩子允许您根据相关的部分将一个组件拆分为更小的函数

在我看来措辞很差,应该说"钩子让你将一个类组件拆分为更小的功能组件......">

因此,与其使用一个整体类来处理 componentDidMount、componentDidUpdate 等方法中的所有状态和生命周期逻辑,不如拆分关注区域并拥有较小的功能组件,这些组件只关心与自身直接相关的事物。


编辑:钩子介绍文档中的这个片段可能会有所帮助:

钩子不会取代你对 React 概念的了解。相反,Hooks 为你已经知道的 React 概念提供了一个更直接的 API:props、state、context、refs 和生命周期。正如我们稍后将展示的那样,Hooks 还提供了一种新的强大方法来组合它们。

目前,在 React 中构建组件有两种方法:

  1. 类组件
  2. 功能组件

您可以在此处查看它们。你构建它的方式是不同的。如果您接近类组件,这意味着您需要使用对象的原型。

另一方面,如果你选择作为一个功能组件,这意味着你从 React 请求的所有内容都是调用一个函数,而不是使用原型。所有这些来自 JS 的链接都会降低性能,这就是为什么 React 核心团队决定进入纯粹的功能方向:它可以表现得更好,并且它使阅读它变得更加简单(一旦你习惯了它(。

关于第二个报价。这是一种展示函数式编程相对于类的更多好处的方法。它们更灵活,可以有更好的构图。

最后补充一点:接近功能组件并不意味着你可以忽略学习类组件。仍然有很多应用程序带有一些遗留代码。我建议同时学习两者,并且每当需要创建新组件时,请接近功能组件范式。

相关内容

  • 没有找到相关文章

最新更新