我在Redux中看到以下两种操作方式:
export function createFoo(foo) {
return {
type: ActionTypes.CREATE_AUTHOR,,
foo
}
}
...以及其他教程(PluralSight):
export function createFoo(foo) {
var newFoo = FooApi.saveFoo(foo);
Dispatcher.dispatch({
actionType: ActionTypes.CREATE_FOO,
foo: newFoo
});
}
后者似乎有更多的责任,创建一个作者实例并调度一个事件。
为什么方法有差异?这两个独立的习惯用语(可能需要中间件来执行调度吗?)。
答案 0 :(得分:2)
第二个例子似乎来自最初的Flux实现,而不是Redux。 Redux没有单独的“调度程序”,并要求操作具有type
字段。
您可能有兴趣阅读我的博客文章The Tao of Redux, Part 1 - Implementation and Intent,其中详细介绍了Redux所需的实际技术限制及其原因,以及其创建背后的历史和原始意图。