В наших предыдущих уроках мы заложили основу для понимания Redux в приложении React. Теперь давайте еще больше усовершенствуем ваши навыки Redux, сосредоточившись на том, как обрабатывать более сложные рабочие процессы с использованием dispatch и создателей действий.
«Код похож на юмор. Когда приходится объяснять, это плохо». — Кори Хаус
1. Понимание отправки
Dispatch — это метод, предоставляемый магазином Redux. Его роль заключается в отправке действий в хранилище Redux для запуска обновлений состояния. Мы уже видели dispatch в действии в наших предыдущих уроках. Немного переделаем:
import { createStore } from 'redux';
// Assume our `todoReducer` is defined.
let store = createStore(todoReducer);
store.dispatch({
type: 'ADD_TODO',
payload: { text: 'Learn Redux' }
});
console.log(store.getState()); // [{ text: 'Learn Redux' }]
В этом примере мы используем store.dispatch для отправки действия ADD_TODO.
2. Определение создателей действий
Ввод всего объекта действия каждый раз, когда мы хотим отправить действие, может быть громоздким. Вместо этого мы можем определить функции, которые создают и возвращают эти объекты действий. Эти функции известны как создатели действий.
function addTodo(text) {
return {
type: 'ADD_TODO',
payload: { text }
};
}
В этом примере addTodo — это создатель действия, который возвращает действие ADD_TODO с заданным text.
3. Отправка действий с помощью создателей действий
Когда у нас есть создатель действий, мы можем использовать его с dispatch для отправки действий в наш магазин Redux. Вот как:
store.dispatch(addTodo('Learn more about Redux'));
В этом примере мы используем нашего создателя действия addTodo с store.dispatch для отправки нашего действия.
4. Привязка создателей действий
Библиотека react-redux предоставляет функцию bindActionCreators, которая автоматически привязывает отправку к создателям действий. Это может быть особенно удобно, когда у вас много создателей действий.
import { bindActionCreators } from 'redux';
// Assume addTodo and removeTodo are action creators.
const boundActionCreators = bindActionCreators({ addTodo, removeTodo }, store.dispatch);
// Now you can call them directly!
boundActionCreators.addTodo('Learn more about Redux');
В этом примере bindActionCreators привязывает store.dispatch к нашим создателям действий, позволяя нам вызывать их напрямую.
Вы становитесь лучше в Redux с каждым днем! Понимая dispatch и создателей действий, вы научитесь делать свой код Redux чище и удобнее в сопровождении. В следующий раз мы углубимся в более сложную тему: обработка асинхронных действий в Redux. Продолжайте учиться и удачного кодирования!
Если вам понравилась статья и вы хотите выразить свою поддержку, сделайте следующее:
👏 Аплодируйте истории (50 аплодисментов), чтобы эта статья попала в топ
👉Подпишитесь на меня в Среднем
Посмотрите больше контента в моем профиле Medium