创建一个不访问 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,
};
};
如您所见,它无法使用某些 useEffect
或 useState
.
访问 React 生命周期
这是一种不好的做法吗?我会在很多地方使用它,所以在某些地方抽象它对我来说很有意义。
编辑:我编辑了问题,因此它不是基于意见的。感谢@Heret Monkey 的建议
它目前不是一个钩子,因此您不必使用 use*
命名约定。
甚至有人会争辩说您不应该使用 hooks 命名约定,因为其他人可能认为此函数必须像 hook 一样使用(“Hooks 规则”)。
自定义挂钩不仅仅是在组件中调用的函数,而是实际上在内部使用一个或多个挂钩的函数。除了名字之外,没有什么不好的。它只是一个辅助函数,封装了一定的工作流程。
除非您认为它在不久的将来会使用钩子,否则您可以将其命名为不同的名称,以免其他人将它与钩子混淆。
我创建了一个名为 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
或 useState
.
这是一种不好的做法吗?我会在很多地方使用它,所以在某些地方抽象它对我来说很有意义。
编辑:我编辑了问题,因此它不是基于意见的。感谢@Heret Monkey 的建议
它目前不是一个钩子,因此您不必使用 use*
命名约定。
甚至有人会争辩说您不应该使用 hooks 命名约定,因为其他人可能认为此函数必须像 hook 一样使用(“Hooks 规则”)。
自定义挂钩不仅仅是在组件中调用的函数,而是实际上在内部使用一个或多个挂钩的函数。除了名字之外,没有什么不好的。它只是一个辅助函数,封装了一定的工作流程。
除非您认为它在不久的将来会使用钩子,否则您可以将其命名为不同的名称,以免其他人将它与钩子混淆。