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

时间:2019-07-02 08:34:31

标签: javascript reactjs state

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

我想要简短易读的内容。如果我决定传递单个属性,则我将拥有一些具有50个或更多属性的组件。这样做以提高速度是否有意义?

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-1)

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} />