在 ReactJS 中存储组件数组数据的最佳方式?

Best way to store data for array of components in ReactJS?

我有一个应用程序,它在页面加载时从数据库中获取数据(objects 的数组)并将其显示为 UI 中的行。每行都是一个 child 组件,可以创建、编辑、删除或重新排序。 parent 组件有一个保存按钮,它从所有 child 组件获取数据并在数据库中更新它。

似乎有 2 种方法来存储此数据:

将所有数据存储在 parent 组件中:

parent 组件获取数据,将其存储在状态变量中并将其传递给 child 组件。 child组件中的数据发生变化时,直接在parent组件中更新。当我们需要保存时,parent中的整个状态变量可以原样写入数据库。

优点:

缺点:

将每一行数据存储在child组件中:

parent 组件获取数据,并将其传递给 child 组件。 child 组件维护自己的数据,当 child 组件中的数据发生变化时,仅在其本地状态变量中更新它。当我们需要保存时,parent 组件将不得不要求每个 child 组件提供它的数据,将其整理成一个数组并更新到数据库中。

优点:

缺点:

在 React 中,建议父组件处理数据并将该数据分发给子组件。为了避免 re-rendering 每个子组件,我会看一下 memo()https://reactjs.org/docs/react-api.html#reactmemo。这将缓存您的子组件,并决定它是否需要 re-render。

要用数组实现这个,我会检查这个: