【发布时间】:2019-07-02 08:34:31
【问题描述】:
我正在重构一个中等大小的应用程序,大约 20k 行代码分布在 20 个组件中。应用程序的整个状态涵盖了 200 多个属性,为了更快,我通过将整个状态传递给我的子组件来构建应用程序。现在我担心页面的速度。
我想要简短易读的组件。如果我决定传递单个属性,我将拥有一些具有 50 个或更多属性的组件。为了加快速度,这样做有意义吗?
感谢您的帮助
【问题讨论】:
-
如果状态是一个对象,它是通过引用传递的,所以我认为它对性能没有影响。如果您想为整个应用程序使用一般状态,我建议您使用 Redux:redux.js.org
-
或者,如果使用反应钩子,使用
useContext。我发现this 文章对我很有用 -
您应该使用
redux将状态保持在一个级别,并且子组件可以使用他们需要的变量。 - react-redux.js.org -
欢迎来到stackoverflow!可能是时候考虑一下你应该把你的状态放在哪里了,但目前的情况也可能没问题!因为我不知道您的应用程序的确切状态,所以我只是建议一些阅读材料。根据官方文档优化性能:reactjs.org/docs/optimizing-performance.html 可能有用。我还发现 Dan Abramov 关于 redux (medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367) 的文章非常有用。它可能会帮助您理解为什么应该(或不应该)使用全局状态管理。
标签: javascript reactjs state