Я следую первому учебнику 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" для начала?
Этот шаблон дает много преимуществ по сравнению с литеральными строками:
undefined
вместо очень похожего значения, которое ваши глаза могли бы автоматически считать правильным.TodoActionTypes
для других участников проекта.TodoActionTypes
(например, с циклом for..in
).