Ответ
Action в Redux — это простой JavaScript-объект, который описывает изменение состояния приложения. Он должен иметь поле type (строка-идентификатор), а также может содержать дополнительные данные (payload).
Пример:
const addTodoAction = {
type: 'todos/addTodo',
payload: 'Learn Redux'
};
Ключевые моменты:
- Action создается с помощью action creator (функция, возвращающая action)
- Передается в хранилище через
dispatch() - Должен быть сериализуемым (без функций, классов и т.д.)
Action creator пример:
function addTodo(text) {
return {
type: 'ADD_TODO',
payload: text
};
}
Redux Toolkit упрощает работу с actions через createAction().
Ответ 18+ 🔞
А, слушай, вот эта вся хуйня с экшенами в Redux — это же просто объект, ёпта! Ну, типа, бумажка с запиской: "эй, хранилище, сделай вот это, блядь!"
Вот смотри, обычный JavaScript-объект, но с одним обязательным полем — type. Это как маркер, название того, что нужно сделать. А ещё можно приложить данные, это payload называется.
Вот, например, представь, что тебе нужно добавить новую задачу в список:
const addTodoAction = {
type: 'todos/addTodo', // Вот, команда: "добавь тудушку, сука!"
payload: 'Learn Redux' // А это сама задача: "Выучить Redux, блядь"
};
И главное, что нужно запомнить, чтобы не обосраться:
- Action creator — это такая функция-обёртка, которая эти бумажки штампует. Чтобы каждый раз руками не писать, понимаешь?
- Чтобы эта бумажка дошла до хранилища, её нужно задиспатчить —
dispatch(). Без этого она так и будет валяться, никому не нужная. - Всё, что ты туда кладёшь, должно быть сериализуемым. Никаких там функций, промисов или классов, ёпта! Только данные, которые можно в JSON превратить.
Вот как выглядит такой создатель экшенов, старым дедовским способом:
function addTodo(text) {
return {
type: 'ADD_TODO',
payload: text
};
}
Но это, блядь, каменный век! Если ты используешь Redux Toolkit (а ты должен, ибо не мудак), то там есть волшебная хуйня createAction(), которая всю эту рутину за тебя делает. Овердохуища как удобно, в рот меня чих-пых!
Короче, экшен — это просто сообщение. Типа "эй, ёбаное хранилище, вот тебе команда и данные, делай что должен!" Всё гениальное — просто, как хуй с горы.