【发布时间】:2021-01-14 14:44:35
【问题描述】:
假设我有以下 React 钩子:
export const useSomeState = (someProps: {}) => {
return React.useState(() => {
// Some really complex function with lots of code
})
}
因为我们使用的是 React.useState 的函数处理程序,所以状态应该只初始化一次.. 没关系...
如果这个钩子被用作经常重新渲染的较大组件的一部分,这会影响性能吗?还是我需要使用 React.useCallback 之类的?
JS 创建和重新创建一个永远不会运行的闭包(在每次重新渲染时)的性能成本是多少?
闭包的复杂性(捕获并放入堆中的变量数量)是否会影响性能成本?
【问题讨论】:
-
你考虑过使用useMemo hook吗?
-
如果你不打算改变这个状态,为什么要在一个状态下使用函数?
-
@adirabargil 因为 useState() 的函数版本只在组件挂载时执行一次
标签: javascript reactjs typescript web dom