Redux - Angular2 / ngrx处理子组件中的状态

时间:2017-02-06 08:38:35

标签: angular redux ngrx

在redux中有一个规则,即只应在reducer中修改状态。有没有人知道将状态处理成子组件的最佳实践?我的意思是如何对组件中的某些事件作出反应,如果子组件能够修改其内部的@intput模型,或者它应该只触发一些事件然后“容器”应该转换为动作调度并且模型更改应该返回通过@input回到这个组件?或子组件可以修改其模型?假设我们有datepicker组件。在处理程序函数中选择日期时,我们应该更新this.date还是应该只触发dateChange事件并等待模型被容器更改?感谢

2 个答案:

答案 0 :(得分:-1)

Angular生态系统中有状态和无状态组件的概念很好。所以它取决于你想要实现的挑战:

  • 您的组件是否可以从您的路线接收初始数据
  • 组件是否具有当前状态的生活知识
  • 此信息在其他组件状态更改之间有效
  • 此组件有多少外部依赖/通信
  • 有状态/无状态子组件等
  • 包含Redux操作(例如ngrx / store或ng2redux)

请阅读本文以获取有关此组件类型之间差异的更多信息。

之后,您需要绘制自己的图片,哪种方法最适合您自己的架构。

https://toddmotto.com/stateful-stateless-components

答案 1 :(得分:-1)

所以我的例子如下所示:

<plumb [nodes]='nodes$|async' [connections]='connections$|async'  (connect)='onConnect($event)' (disconnect)='onDisconnect($event)')/>

基本上它的图形控件来绘制图表..我是givint这个cmoponent作为块/ ndoes的参数列表和连接列表,当用户连接图形中的项目或者disconets时我触发两个事件..所以问题是如果修改&#34;连接&#34;列表应该在组件内部或当用户绘制连接组件应该触发事件并等待绘图箭头,直到ngrx商店将处理它并返回新的连接列表:)我不想这个组件是商店的awawre因为我希望这是可重用..根据您发送的文章看起来更好的组件状态,所以它不应该修改连接列表itselfe。感谢