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

问题描述

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

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,}; }; useEffect 来访问 React 生命周期。

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

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

解决方法

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

甚至有人会争辩说你不应该使用钩子命名约定,因为其他人可能认为这个函数必须像钩子一样使用(“钩子规则”)。

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

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