如果可以选择,我应该通过传递参数还是通过 Redux 存储连接来传递数据?

If given the choice, should I be passing data by passing through params or by connecting through the Redux store?

我正在使用 React 和 Redux,这是我在 React 中的第一个项目。截至目前,我有一堆组件,所有 "get" 和 "set" 通过 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)

现在我注意到在没有 Redux 的 React 中..你必须构建你的应用程序来通过参数传递你的数据,比如

<SomeComponent someParam={this.commonData} />
<SomeComponent someParam={this.commonData} />

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

似乎将两全其美的结构结合起来.. 也许让主要组件连接到商店然后将该信息传递给它的子组件可能是最理想的,但是有什么理由让我"should" 只是通过商店连接所有东西吗?

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

感谢任何意见

看看 Redux 的创建者 Dan Abramov 的 this article

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

拆分展示性或 "dumb" 仅对其 props 作出反应的组件有几个优点。即,可重用性和集中化(您知道在哪里寻找东西,哑组件很少需要太多维护)。

当然,在现实世界中从来都不是非黑即白的。尽你所能,但不要执迷不悟,只做对你的应用有意义的事情。如果不了解更多关于项目层次结构的信息,就很难知道您是否有问题或者只是一个简单的应用程序,这并没有太大区别。一般来说,我会说要注意嵌套的 "smart" 组件。