六、Dispatcher
最后更新于:2022-04-01 22:36:19
## 六、Dispatcher
Dispatcher 的作用是将 Action 派发到 Store、。你可以把它看作一个路由器,负责在 View 和 Store 之间,建立 Action 的正确传递路线。注意,Dispatcher 只能有一个,而且是全局的。
Facebook官方的 [Dispatcher 实现](https://github.com/facebook/flux)输出一个类,你要写一个[`AppDispatcher.js`](https://github.com/ruanyf/extremely-simple-flux-demo/blob/master/dispatcher/AppDispatcher.js),生成 Dispatcher 实例。
> ~~~
> // dispatcher/AppDispatcher.js
> var Dispatcher = require('flux').Dispatcher;
> module.exports = new Dispatcher();
> ~~~
`AppDispatcher.register()`方法用来登记各种Action的回调函数。
> ~~~
> // dispatcher/AppDispatcher.js
> var ListStore = require('../stores/ListStore');
>
> AppDispatcher.register(function (action) {
> switch(action.actionType) {
> case 'ADD_NEW_ITEM':
> ListStore.addNewItemHandler(action.text);
> ListStore.emitChange();
> break;
> default:
> // no op
> }
> })
> ~~~
上面代码中,Dispatcher收到`ADD_NEW_ITEM`动作,就会执行回调函数,对`ListStore`进行操作。
记住,Dispatcher 只用来派发 Action,不应该有其他逻辑。
';