【发布时间】:2021-07-08 11:06:14
【问题描述】:
React 的 useCallback 钩子在将生成的(记忆的)函数传递给子组件时提供了性能提升,以避免不必要的重新渲染。
当钩子用作内部(“私有”)函数时,我能获得任何性能提升吗? 例如:
function Foo({numbers}) {
const dep1 = React.useMemo(() => {......}, [....])
const calc = React.useCallback((a) => a * dep1, [dep1])
return (
<>
{numbers.map((num) => (
<div key={num}>
Num: {num}, Calculated: {calc(num)}
</div>
))}
</>
);
}
或者做一个简单的
const calc = (a) => a * dep1
这种情况是一样的吗?
换句话说,既然useCallback是在记忆函数引用,而不是函数本身,那么在不将它作为prop传递时我是否必须使用它?
【问题讨论】:
标签: reactjs memoization usecallback