Dispatcher

  • Оповещать все зависимые Stores
  • Управлять последовательностью обновлений
  • Устранять циклические зависимости 

Action creators

  • UI Actions
  • Web API Actions
  • Developers API Actions

Пример

var todoActions = {

  createTodo: function(text) {
    AppDispatcher.dispatch({
      type: 'create_todo',
      data: {
        ...
      }
    });
    //----Maybe-----
    utils.sendToServer(text);
  }
  deleteTodo: function(id) {    
      ...
  }
}

Что не так?

type: 'create_todo'

  • 'create todo'
  • 'CreateTodo'
  • 'CREATE_TODO'
  • ....

Constants

ActionTypes = keyMirror({
    CREATE_TODO: null,
    DELETE_TODO: null,
    ASIGN_TODO: null,
    DELETE_FINISHED: null
});

var todoActions = {

  createTodo: function(text) {
    AppDispatcher.dispatch({
      type: ActionTypes.CREATE_TODO,
      data: {
        ...
      }
    });
    //----Maybe-----
    utils.sendToServer(text);
}


Назад в Store

function TodoStore() {
    ...
    this.dispatchToken = AppDispatcher.register(function (action) {
        switch (action.actionType) {
            case actionTypes.CLICK_TODO:
                AppDispatcher.waitFor([
                    subItemsStore.dispatchToken,
                    commentsStore.dispatchToken
                ]);
                break;            
        }
    }
}

Dispatcher

By Roman Iakobchuk

Dispatcher

  • 1,076