在React中,有状态逻辑和状态之间有什么区别?

12

我正在阅读Hooks文档,它们非常清楚地表明:

这些组件的状态是完全独立的。Hooks是重用有状态逻辑的一种方式,而不是重用状态本身。

我想澄清这两者之间的区别。

5个回答

10

这意味着当你在多个组件中重复使用自定义钩子时,实际的状态数据不会在这些组件之间共享。每个钩子使用都将有一个独立的状态数据实例。

如果你想要共享状态,那么你需要使用useContext钩子(它也可以在一个自定义钩子中使用,这样就意味着多次使用该钩子的组件可以共享状态)。


5
状态是一组值,用于描述UI的当前状态。它可以在组件之间共享,因为它们订阅其更改,并且其中某些组件可以对其进行更改。
有状态逻辑是使用状态的任何代码,但在钩子的情况下,我会将其定义为使用一个或多个钩子创建的行为。这就像你给组件添加的福利一样。福利是一个很好的例子,因为它告诉你它的价值是特定于该组件的,但是多个组件可以拥有该福利,这就是为什么它被称为可重用的原因。

1
这意味着在特定自定义钩子的每个地方,状态变量的新实例被实例化。而钩子中的状态不会在使用该自定义钩子的用户之间共享。它们对于钩子的每个用户都是独特的。每次使用自定义钩子时,其中所有状态和效果都是完全隔离的。

0

State 是类组件中的状态,改变状态的唯一方式是使用 setState。

有状态逻辑 是指包括钩子和自定义钩子在内的一些行为,使用这些行为来改变状态。


0

在我看来:

UI 是基于事件交互并随着时间变化的。

React 使用状态来处理(重新渲染)UI 随着时间的变化。(特定组件版本在特定时间)

许多逻辑(函数)必须使用当前状态值来返回结果(有状态的逻辑)

一些有状态的逻辑(函数)可用于多个组件,为了共享它们,我们可以使用 Hooks。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接