【问题标题】:Is it ok to create React custom hooks that don't actually call other hooks?可以创建实际上不调用其他钩子的 React 自定义钩子吗?
【发布时间】:2021-07-11 23:44:15
【问题描述】:

我了解 React 自定义钩子只是常规函数,但前缀为“use”以向 React 表明它们是自定义钩子。这让他们可以使用内置的 React 钩子(或其他自定义钩子)。

我创建了一个以 'use' 为前缀的函数,原本打算作为一个自定义钩子,但我意识到它实际上不需要调用任何其他 React 钩子。我应该重命名我的函数,使其不再被视为钩子吗?是否有任何其他影响需要考虑(比如性能?)。此主题是否有标准约定?

【问题讨论】:

标签: reactjs react-hooks


【解决方案1】:

如果您的钩子不依赖于任何其他钩子,则应将其转换为正常功能。 自定义 Hook 提供了共享逻辑的灵活性,这在之前的 React 组件中是不可能的。

  1. Hooks 只能从 React 代码调用,不能从常规代码调用 JS 函数。因此,Hooks 的范围仅限于 React 代码世界 并且有更多的能力用 React 代码做很多事情。而不是JS, 常规函数可以跨应用程序使用,但作为反应代码 指南使代码更符合反应语法。

  2. 在基于类的组件中,Hooks 不起作用,但正常 函数会。

  3. 在普通的JS函数中,不能访问useStateuseEffectuseReducer 等,但在 react 自定义钩子中我可以。

在这里回答:https://stackoverflow.com/a/60133908/1723410

【讨论】:

    猜你喜欢
    • 2022-01-07
    • 2020-08-27
    • 2021-10-27
    • 2020-08-04
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    相关资源
    最近更新 更多