Reactjs 您如何在Redux中组织活动?

Reactjs 您如何在Redux中组织活动?,reactjs,architecture,redux,flux,Reactjs,Architecture,Redux,Flux,我有一个名为actions的文件夹,其中有一个名为index.js的文件,到目前为止,我一直在将我的所有操作都放在这个文件夹中。现在事情变得一团糟,我想知道如何最好地把事情分开。有什么好的策略吗?你把它们放在不同的档案里吗?按…分组。。。?或者您只是将它们作为部分保存在不同的文件中,然后将它们包含在索引文件中,然后始终只导入索引文件 您可以使用bindActionCreators 小例子: import React, { Component } from 'react'; import { c

我有一个名为actions的文件夹,其中有一个名为index.js的文件,到目前为止,我一直在将我的所有操作都放在这个文件夹中。现在事情变得一团糟,我想知道如何最好地把事情分开。有什么好的策略吗?你把它们放在不同的档案里吗?按…分组。。。?或者您只是将它们作为部分保存在不同的文件中,然后将它们包含在索引文件中,然后始终只导入索引文件

您可以使用bindActionCreators

小例子:

import React, { Component } from 'react'; 
import { connect } from 'react-redux'; 
import { bindActionCreators } from 'redux';
import * as filterActions from '../actions/filterActions';
import * as writeActions from '../actions/writeActions';

class TestComponent extends Component {
  render(){
    return <div>Test</div>;
  }
}


function mapDispatchToProps(dispatch){
  return {
    filterActions: bindActionCreators(filterActions, dispatch),
    writeActions: bindActionCreators(writeActions, dispatch)
  };
}

export default connect(null, mapDispatchToProps)(TestComponent);

这将在mapDispatchToProps的返回对象中使用的键处向组件的道具添加操作。因此,如果您想使用filterActions中的操作,您可以使用这个.props.filterActions.actionName.

将所有内容放在一个action.js中会很快失控,还原器也是如此

这实际上取决于个人品味,但我看到的趋势似乎是将应用程序分为多个功能,每个功能都有自己的动作,每个功能都有一个减缩器

然后,应用程序树的每一级都将合并简化程序,您的存储最终将看起来像文件夹结构,从而更容易查找内容。特性通常包含actions.js、reducer、js、index.jsx,还可能包含该特性的style.scss/css。这样做的好处是,在某个时候删除该特性非常容易,而不必到处挖掘死代码

您没有提到如何捆绑代码。当使用ex Webpack构建时,这种方法很好