Какая польза от ActionTypes во Flux?

1

Я следую первому учебнику Flux по адресу https://github.com/facebook/flux/tree/master/examples/flux-todomvc

Я немного смущен относительно того, что на самом деле делает файл TodoActionTypes.js.

Если что-то неясно, о чем я прошу, сообщите мне, и я попытаюсь разобраться.

Я попытаюсь объяснить с помощью указателя onToggleTodo AppView:

<AppView /> renders <Main /> which has props.onToggleTodo which is triggered on onChange.

Итак, onChange запускает TodoActions.toggleTodo.

Из TodoActions запускается toggleTodo, и это отправляет действие с типом и идентификатором в хранилища

toggleTodo(id) {
    TodoDispatcher.dispatch({
        type: TodoActionTypes.TOGGLE_TODO,
        id,
    });
},

В TodoActionTypes.js есть:

const ActionTypes = {
    ...
    TOGGLE_TODO: 'TOGGLE_TODO',
};

в TodoStore.js, есть

switch (action.type){
    case TodoActionTypes.TOGGLE_TODO:

Мой вопрос: зачем это нужно, а не просто просто "TOGGLE_TODO" для начала?

Теги:
flux

1 ответ

1

Этот шаблон дает много преимуществ по сравнению с литеральными строками:

  • Ошибки в результате неправильного ввода значения вручную намного проще отслеживать. Если бы вы использовали инструмент проверки типов, такой как TypeScript, компилятор бы четко обозначил это. По крайней мере, вы увидите undefined вместо очень похожего значения, которое ваши глаза могли бы автоматически считать правильным.
  • Редакторы, которые поддерживают рефакторинг, могут это сделать в этом случае.
  • Значение может быть легко изменено (как его значение, так и тип). Например, вы можете решить, какую дорожку вы хотите использовать в качестве битовой маски, и вам придется изменить тип на целые числа.
  • Он предоставляет четкий список возможных TodoActionTypes для других участников проекта.
  • Он обеспечивает возможность программного доступа и объяснения возможных TodoActionTypes (например, с циклом for..in).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню