0

我正试图围绕 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);
  }
});

所以我想我的问题是,为什么它会触发相同的事件?是不是专门让调度员来处理waitFor?它是否天生就理解同一事件再次发生意味着什么?

4

1 回答 1

1

Viewsaction每当事件(如点击)发生时,React 组件就会发出。

然后,这些操作utils/apis用于获取/推送数据到服务器,然后使用此获取/推送的数据作为有效负载发送到 adispatcher中。

Dispatcher是通知多个商店有关更新的中央机制,更新是与特定action type.

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

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

单向数据流-

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

这是一篇关于更多细节的好文章 - https://medium.com/brigade-engineering/what-is-the-flux-application-architecture-b57ebca85b9e

于 2015-09-18T18:49:49.387 回答