在大对象上反应useState挂钩性能

时间:2020-01-14 19:35:47

标签: reactjs react-hooks

我是React的新手,我正在创建一个应用程序,在该应用程序中,我使用的状态非常大且需要频繁更新。我知道使用useState()会在每次更新时替换整个对象。如果这意味着它将复制对象的完整副本,则在m种情况下会严重降低性能。如果这是一个懒惰的评价,我想我可能会好的,因此是我的问题。

相反,如果我使用基于旧类的setState()方法,则只能更新状态的必要部分。例如,我的数据结构如下所示:

{
    'data0': { ... some not very deep object ...},
    'data1': { ... },
    'data2': { ... },
    ...,
    'dataN': { ... },
}

我可能有成千上万个data对象。由于data对象很小,因此在需要时替换它们不会对性能造成太大的影响,这在类中setState()的情况下是完全可行的,但是如果使用{ {1}}钩?

1 个答案:

答案 0 :(得分:0)

U可以使用usestate传播先前的状态,并且您将获得与setstate相同的结果

Usestate([
 ...state,
    Data6
])