组件是否应该写入React js app中的商店?

时间:2016-01-23 16:31:18

标签: design-patterns reactjs flux

允许从React组件直接写入存储是一个好主意,还是反模式? (不使用调度员)

1 个答案:

答案 0 :(得分:3)

  1. 组件应具有单一职责SOLID原则之一) - 以呈现UI视图。如果它写入商店,则违反了此原则。

  2. 为了获得更多组件的可重用性 - 最好删除不必要的依赖项。直接写入存储UI组件的情况将取决于商店实现。更好 - 从调度程序中删除依赖项。使用props显式设置回调:

    const Component = React.createClass({
      render: function() {
        return <button onClick={ this.props.onClick }></button>;
      }
    });
    
    <Component onClick={ callDispatcher } />
    

    在这种情况下,您的Component是最可重复使用的。您甚至可以在具有不同“通量”的不同项目中使用它。实现。

  3. Redux 中查看许多好主意 - 它会从组件中删除尽可能多的依赖项。在Redux中,你拥有所有的组件,并且愚蠢的#34; /&#34;纯粹&#34; (它们没有状态)你可以通过按参数获取组件的函数将状态附加到组件(例如,Redux&#39; s connect)。它也称为高阶组件

      

    高阶组件只是一个现有的函数   组件并返回另一个包装它的组件。

    See more details(来自Redux作者Dan Abramov)。