与一次性使用的钩子相比,嵌入式反应钩子是否有性能下降?
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?
不,我不认为会有任何性能下降。我认为除了在您调用在系统允许的情况下尽可能快地循环运行。
我有一个钩子(假设是 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?
不,我不认为会有任何性能下降。我认为除了在您调用在系统允许的情况下尽可能快地循环运行。