Константы служат централизованными ссылками на типы экшенов и дают критические преимущества для поддержки кода и его надёжности. Они защищают от опечаток, которые могут вызвать баги, и позволяют легко отследить, где используется та или иная функциональность, через поиск в IDE.
ReferenceError вместо того, чтобы что-то молча сломалосьКонстанты обычно хранятся в отдельном файле:
actionTypes.js
constants.js
Пример структуры:
export const ADD_TODO = 'ADD_TODO';
export const DELETE_TODO = 'DELETE_TODO';
export const EDIT_TODO = 'EDIT_TODO';
export const COMPLETE_TODO = 'COMPLETE_TODO';
Импортируешь константы, чтобы типы экшенов везде задавались единообразно:
import { ADD_TODO } from './actionTypes';
export function addTodo(text) {
return {
type: ADD_TODO,
text
};
}
Используешь те же константы для обновления стейта:
import { ADD_TODO } from './actionTypes';
export default (state = [], action) => {
switch (action.type) {
case ADD_TODO:
return [
...state,
{ text: action.text, completed: false }
];
default:
return state;
}
};
Если использовать константы в action creators и reducers, то ты гарантируешь единообразные названия и минимизируешь риск несовпадений типов, которые могут сломать Redux.
Константы типов действий предотвращают молчаливые ошибки, вызывая ReferenceError при опечатке, тогда как использование строковых литералов позволило бы несовпадающим типам действий остаться незамеченными.
Новый — ещё не проверен сообществом
Вы