与一次性使用的钩子相比,嵌入式反应钩子是否有性能下降?

Do embedded react hooks have a performance degradation compared to single use hooks?

我有一个钩子(假设是 useBook)需要 3 行代码才能使用。如果我将它包装在另一个只需要 1 行代码并调用 useBook 和 returns 数据的钩子(假设是 useBookWithParams)中,与 useBook 相比,使用 useBookWithParams 会导致性能下降吗?我试图决定 b/w 代码可读性和性能权衡。 (假设 useBook 的结果在实现中被缓存和抽象掉)

如果我对您的 post 的理解正确,您基本上是在问

之间是否存在显着的性能影响
export const myFunction = () => {
  // line 1 of code
  // line 2 of code
  // line 3 of code
}

...

myFunction();

const innerFunction = () => {
  // line 1 of code
  // line 2 of code
  // line 3 of code
}

export myFunction = () => innerFunction();

...

myFunction();

不,两者在性能上不会有太大差异。第二个版本需要 call/push innerFuction 入栈,执行代码,然后 return/pop 结果,但这在你的 React 应用程序 运行 的宏伟计划中可以忽略不计.

关于readability/maintainability,这是主观的。 IMO 如果“内部函数”的 code/logic 仅在一个地方定义和使用,则不值得分解为一个函数。这源于 Don't Repeat Yourself (DRY) 原理.

具体回答你的问题:

would using useBookWithParams cause any performance degradation compared to useBook?

不,我不认为会有任何性能下降。我认为除了在您调用在系统允许的情况下尽可能快地循环运行。