我的行动如下:
SomeActions.doAction1(){
//..dispatch event "started"...
//...do some process....
FewActions.doAnotherAction(); //CAN WE DO THIS
//...do something more....
//..dispatch event "completed"..
}
虽然上面的工作没有任何问题,但只是想知道,如果根据通量模式/标准是有效还是有更好的方法。
另外,我想从商店调用Actions是个坏主意。如果我错了,请纠正我。
答案 0 :(得分:4)
是的,在另一个Action中调用Action是一种不好的做法。行动应该是原子的;商店中的所有更改都应该响应单个操作。他们应该描述在现实世界中发生的一件事:用户点击按钮,服务器响应数据,屏幕刷新等等。
当大多数人将动作视为命令式指令(首先执行A,然后执行B)时,大多数人会对动作感到困惑,而不是描述发生的事情以及被动<的起点/ em>进程。
这就是为什么我建议人们用过去时态命名他们的动作类型:BUTTON_CLICKED
。这提醒程序员基本上是外部驱动的,描述性的行为。
行动就像一份报纸,送到所有商店,描述发生的事情。
从商店调用操作几乎总是错误的做法。我只能想到一个例外:当Store通过启动异步进程来响应第一个Action时。当异步过程完成时,您需要触发第二个Action。对服务器进行XHR调用就是这种情况。但更好的方法是将XHR处理代码放入Utils模块中。然后,商店可以通过调用Utils模块中的方法来响应第一个Action,然后Utils模块具有在服务器响应返回时调用第二个Action的代码。