Javascript 反应:将整个状态传递给另一个组件有意义吗?

Javascript 反应:将整个状态传递给另一个组件有意义吗?,javascript,reactjs,state,Javascript,Reactjs,State,我正在研究一个中等大小的应用程序,大约20k行代码分布在20个组件中。应用程序的整个状态覆盖200多个属性,为了更快,我通过将整个状态传递给我的子组件来构建应用程序。现在我关心的是页面的速度 我希望有简短易读的组件。如果我决定传递单个属性,我将有一些具有50个或更多属性的组件。为了提高速度这样做有意义吗 谢谢你的帮助是的 React将只渲染自上次渲染以来所做的更改,如果子元素的某些部分未被修改,则不会将其重新渲染到DOM 例如: <Content accounts={t

我正在研究一个中等大小的应用程序,大约20k行代码分布在20个组件中。应用程序的整个状态覆盖200多个属性,为了更快,我通过将整个状态传递给我的子组件来构建应用程序。现在我关心的是页面的速度

我希望有简短易读的组件。如果我决定传递单个属性,我将有一些具有50个或更多属性的组件。为了提高速度这样做有意义吗

谢谢你的帮助是的

React将只渲染自上次渲染以来所做的更改,如果子元素的某些部分未被修改,则不会将其重新渲染到DOM

例如:

  <Content
        accounts={this.state.accounts}
        showBalance={this.state.showBalance}
        withdraw={this.state.withdraw}
        deposit={this.state.deposit}
        current={this.state.current}
        depositAmount={this.state.depositAmount}
        handleDeposit={this.state.handleDeposit}
        handleRm={this.state.handleRm}
        amounts={this.state.amounts}
        getWithdraw={this.state.getWithdraw} 
  />
可以用

<Content {...this.state} />

从模式的角度来看,使用全局状态管理(如redux)在组件之间共享状态比将状态传递给子组件要干净得多。
在其他一些情况下,解决方案甚至更简单,仍然不需要传递状态。

如果状态是一个对象,则通过引用传递,因此我认为它不会对性能产生影响。如果您想为整个应用程序使用常规状态,我建议您使用Redux:或者,如果使用react挂钩,则使用useContext。我发现这篇文章对我非常有用。你们应该使用redux在一个级别上维护状态,子组件可以使用他们需要的变量。-欢迎来到stackoverflow!也许是时候考虑一下你应该把你的州放在哪里了,但是现在的情况也可以!由于我不知道您的应用程序的确切状态,所以我只建议一些阅读资料。根据官方文档优化性能:可能有用。我还发现丹·阿布拉莫夫关于redux的文章非常有用。它可能会帮助您理解为什么应该或不应该使用全局状态管理。