允许从React组件直接写入存储是一个好主意,还是反模式? (不使用调度员)
答案 0 :(得分:3)
组件应具有单一职责(SOLID原则之一) - 以呈现UI视图。如果它写入商店,则违反了此原则。
为了获得更多组件的可重用性 - 最好删除不必要的依赖项。直接写入存储UI组件的情况将取决于商店实现。更好 - 从调度程序中删除依赖项。使用props显式设置回调:
const Component = React.createClass({
render: function() {
return <button onClick={ this.props.onClick }></button>;
}
});
<Component onClick={ callDispatcher } />
在这种情况下,您的Component
是最可重复使用的。您甚至可以在具有不同“通量”的不同项目中使用它。实现。
在 Redux 中查看许多好主意 - 它会从组件中删除尽可能多的依赖项。在Redux中,你拥有所有的组件,并且愚蠢的#34; /&#34;纯粹&#34; (它们没有状态)你可以通过按参数获取组件的函数将状态附加到组件(例如,Redux&#39; s connect
)。它也称为高阶组件。
高阶组件只是一个现有的函数 组件并返回另一个包装它的组件。
See more details(来自Redux作者Dan Abramov)。