在回流数据流中播种动作和调用商店的“setter”方法有什么区别?

时间:2017-02-18 03:26:46

标签: reactjs refluxjs

在回流数据流中播种动作和调用商店的“setter”方法有什么区别?

TodoActions['add'](todo)

VS

TodoStore.add(todo)

2 个答案:

答案 0 :(得分:0)

动作将通过RefluxJS lib触发您的商店,但Store.Add()直接调用add方法

答案 1 :(得分:0)

首先,注意Whatever.func()Whatever['func']()只是同一事物的两种不同语法,这很有用。因此,您的示例中唯一的区别就是您正在调用它。

就直接在商店中调用方法而言,相对于最终在商店中调用该方法的操作,区别在于架构,并且与遵循更容易扩展的模式有关,工作更多广泛等等。

如果程序中的任何给定事件(例如,在这种情况下,添加某些内容)会发出任何可以侦听的清除操作,那么构建大型程序,编辑以前制作的程序等变得更加容易。说这个事件已经发生并不需要跟踪可能需要了解它的所有地方...它只需要说TodoActions.add(todo),以及需要了解的程序的其他部分一个额外的事情可以自我管理,以确保它正在倾听这一行动。

这就是我们遵循单向循环模式的原因:

component -> action -> store -> back to component

因为事件发生的流程更容易管理,因为程序的每个部分都可以管理自己关于程序状态的知识以及何时需要更改。发出动作的组件不需要知道可能需要该动作的程序的每个可能部分......它只需要发出它。