我晚了解到的一件事情:
const [object, setObject] = useState(new SomeObject());
在这里,我们在每次重新渲染时构造一个
SomeObject
的实例。如果是组件的初始渲染,则返回到object
,否则就被丢弃。不管传入的是什么作为初始参数,都会被重复评估和丢弃。它还必须是纯净的,因为重新渲染可能会在任意时间间隔和任意数量上发生。考虑到构建一些对象或大型数组可能非常昂贵,这不是有点次优吗?
这里的解决方案是什么?我是否误解了什么,或者React中这样一个基本功能的实现方式如此次优?
() => () => new SomeObject()
吗?但是这对于useRef
不可行,我认为它应该可行,因为同样的原理适用于它。 - Nordling Art