创建一个不访问 React 生命周期的钩子会导致项目进一步发展的问题吗?

Will creating a hook that doesn't access to React lifecycle cause problems farther a project grows?

我创建了一个名为 useFilestack 的挂钩,它现在抽象了从二进制文件上传文件的逻辑,但将来它可以根据需要增长。所以它看起来像这样:

const useFilestack = () => {
  const upload = (binary: string) => {
    const file = Buffer.from(binary, 'binary').toString('base64');

    const filestack = client.init(apiKey);

    filestack.upload(file);
  };

  return {
    upload,
  };
};

如您所见,它无法使用某些 useEffectuseState.

访问 React 生命周期

这是一种不好的做法吗?我会在很多地方使用它,所以在某些地方抽象它对我来说很有意义。

编辑:我编辑了问题,因此它不是基于意见的。感谢@Heret Monkey 的建议

它目前不是一个钩子,因此您不必使用 use* 命名约定。

甚至有人会争辩说您不应该使用 hooks 命名约定,因为其他人可能认为此函数必须像 hook 一样使用(“Hooks 规则”)。

自定义挂钩不仅仅是在组件中调用的函数,而是实际上在内部使用一个或多个挂钩的函数。除了名字之外,没有什么不好的。它只是一个辅助函数,封装了一定的工作流程。

除非您认为它在不久的将来会使用钩子,否则您可以将其命名为不同的名称,以免其他人将它与钩子混淆。