Flux 事件 to/from 存储?

Flux events to/from store?

我正试图全神贯注于 Flux,实际上我得到了一个人为的示例,但我对事件流有点困惑。假设我定义了一个名为 TestAction 的动作。我的视图有一个发出该事件的 onClick;

Dispatcher.dispatch(new TestAction(this.state.currentValue));

太好了,它流向了商店。到目前为止,一切顺利,我明白了。

现在,我的商店可以发挥它的魔力,与服务器对话等,并自行更新。然后,出于某种原因,所有示例都显示商店按照这些方式做某事;

Dispatcher.register((action: Action) => {
  if (action instanceof TestAction) {
    var text = (<TestAction>action).text;
    console.log('Store got: ', text);
    this._text = text + '_';
    this.emit(TestStore.TEST_EVENT, this._text);
  }
});

所以我想我的问题是,为什么它会触发同一个事件?是专门让dispatcher来处理waitFor的吗?它是否天生就理解同一事件返回意味着什么?

Views 是 React 组件,每当事件(如点击)发生时都会发出 action

这些操作然后使用 utils/apis 到 fetch/push 数据到服务器,然后使用此 fetched/pushed 数据通过 dispatcher 作为有效载荷发送。

Dispatcher 是一种通知多个商店更新的中央机制,更新是与特定 action type 一起分派的有效负载。

商店注册特定类型的action types。每当调度程序发送有关该操作类型的更新时,商店都会使用该数据更新自己,并发出更改事件,表示商店状态已更改。

Views 订阅这些商店,每当商店发出更改事件时,视图就会更新它们的商店并重新呈现自己。这是一整圈数据流。同样,当某些事件发生在视图上时,循环开始。

单向数据流-

Views -> Action -> Dispatcher -> Stores -> Views

这是一篇很好的文章,可提供更多详细信息- https://medium.com/brigade-engineering/what-is-the-flux-application-architecture-b57ebca85b9e