我要浏览挂钩文档,它们使其非常清楚
这些组件的状态是完全独立的。钩子是一个 重复使用状态逻辑的方法,而不是声明自己。
我想清楚这两件事之间的区别。
也就是说,当您重用多个组件中的自定义钩子时,实际状态数据将不会在这些组件之间共享。每次使用钩子将有一个单独的状态数据实例。
如果您确实要共享状态,那么您将考虑使用useContext
钩(也可以在自定义钩中使用,这意味着钩子的多次用途可以共享状态)。
状态是描述UI 的当前条件的值的组合。它可以在组件之间共享,从而将它们订阅其更改,其中一些可以对其进行更改。
状态逻辑是使用状态的任何代码,但是在挂钩的情况下,我将其定义为使用一个或多个钩子创建的行为。这就像您要添加到组件中的特权。振作是一个很好的例子,因为它告诉您其值是特定于该组件的,但是一个以上的组件可以拥有该津贴,这就是为什么它称为可重复使用的原因。
这意味着该状态变量的新实例在该特定自定义挂钩的每个位置进行了实例化。挂钩中的状态并未在该自定义挂钩的用户之间共享。它们对于该挂钩的每个用户都是特殊的。每当您使用自定义钩子时,它内部的所有状态和效果都是完全隔离的。
状态是类组件中的状态,更改状态的唯一方法是SetState。
状态逻辑是一些行为,包括钩子和自定义挂钩,使用行为来改变状态。
在我的角度:
ui是事件上的交互式基础,并且通过 Time 进行更改。
React使用状态在时间内处理(rerender)UI。(特定的组件版本在特定时间中)
许多 logics (函数)必须使用当前状态值返回结果(状态逻辑)
一些状态逻辑(函数)可用于多个组件,共享我们可以使用钩子。