volkov_p_v
@volkov_p_v
FrontEnd разработчик

Как побороть синхронные запросы в диспетчере Flux?

В архитектуре flux используются диспетчер, который умеет работать только синхронно. Поэтому в крупных приложение случается такое, что экшены встречаются в диспетчере и вызывают ошибку.
Конечно можно сделать несколько диспетчеров, но что-то мне подсказывает, что это не лучший вариант, хотя может я нормально не разобрался.
Поэтому вопрос:
Как правильно сделать архитектуру Flux, что бы акшены не встречались в диспетчере, для крупного одностраничного приложения?
  • Вопрос задан
  • 211 просмотров
Пригласить эксперта
Ответы на вопрос 1
Вообще странно как они у вас могут пересекаться. Ну да ладно берете документацию, там довольно хорошо все написано, смысл такой, есть у вас Dispatcher.
Создаете класс App.Dispatcher.js (все будет на ES6):
import {Dispatcher} from 'flux';
export default new Dispatcher();

Есть у вас action-ны AppActions, в нем что-то вроде этого:
import AppDispatcher from './AppDispatcher.js';
export default {
    firstAction(){
        AppDispatcher.dispatch({
            actionType: 'FIRST__ACTION'
        });
    },
    secondAction(){
        AppDispatcher.dispatch({
            actionType: 'SECOND__ACTION'
        });
    }
}

Ну и хранилище конечно AppStore:
import AppDispatcher from './AppDispatcher.js';
export default class AppStore {
    constructor() {
         AppDispatcher.register(function (action) {
             switch (action.actionType) {
                 case 'FIRST__ACTION':
                     //Первое действие
                     break;
                 case 'SECOND__ACTION':
                     //Второе действие
                     break;
             }
         });
    }
}

Да вот собственно и все, не чего у вас тут пересекаться не будет. Ну и норм туториал тут.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы