如果给出了选择,我应该通过传递params还是通过Redux商店连接来传递数据?

时间:2017-03-14 19:27:14

标签: reactjs redux react-redux

我使用React和Redux,这是我在React整体上的第一个项目。到目前为止,我有一堆组件,所有"得到"和"设置"通过Redux的全局数据。所以基本上每个组件都有这个:

this.props.actions.UseInfo(this.props.commonData);


function mapStateToProps(state) {
  return {
    commonData: state.something.commonData
  };
}

function mapDispatchToProps(dispatch) {
  return {
    actions: bindActionCreators(someActions, dispatch)
  };
}

export default connect(mapStateToProps, mapDispatchToProps)(ComponentName)

现在我注意到React没有Redux ..你必须构建你的应用程序以通过像

这样的参数传递你的数据
<SomeComponent someParam={this.commonData} />
<SomeComponent someParam={this.commonData} />

有什么理由我应该花时间重构我的应用程序以通过参数传递更多信息并使用Redux actions / reducers,除非需要吗?

似乎结构化了两个世界中最好的......可能主要组件连接到商店然后将信息传递给它的子组件可能是最理想的,但是有什么理由为什么我应该&#34;只是通过商店连接一切来做到这一点?

在一天结束时,我觉得它完成了同样的事情。

感谢任何输入

2 个答案:

答案 0 :(得分:1)

请看看Redux的创作者Dan Abramov的this article

基本上,它表示容器组件通过connect获取数据,而表示组件通过props获取数据。

答案 1 :(得分:1)

分割表现或愚蠢的&#34;有两个好处。只是对他们的道具做出反应的组件。也就是说,可重用性和集中化(你知道在哪里寻找东西,愚蠢的组件很少需要很多维护)。

在现实世界中,它当然不是黑白的。尽你所能,但不要为此烦恼,只要做对你的应用有意义的事情。如果不了解项目的层次结构,很难知道您是否遇到问题,或者只是一个简单的应用程序而且它并没有太大的区别。总的来说,我会说要注意嵌套&#34; smart&#34;组件。