useState 和 useRef 初始值每次重新渲染都会计算



有一件事我迟到了:

const [object, setObject] = useState(new SomeObject());

在这里,我们在每次重新渲染时构造一个SomeObject实例。 然后,如果它是组件的初始渲染,它将返回到object,否则它将被丢弃。

作为初始参数传入的任何内容都会被一遍又一遍地评估和丢弃。它也最好是纯净的,因为重新渲染可以以任意间隔和任意数量发生。鉴于构造一些对象或大型数组可能非常昂贵,是不是有点次优?

这里的解决方案是什么?我是否误解了什么,或者 React 中的这样一个基本功能以如此次优的方式实现?

您可以将函数传递给useState钩子以延迟初始化您的值。

例如:

const [state, setState] = useState(() => new SomeObject());

相关内容

  • 没有找到相关文章

最新更新