Основные термины в Redux
В этом уроке мы кратко пройдемся по основным понятиям и терминам, владение которыми необходимо при дальнейшем изучении Redux.
Начнем мы с действия (экшн, action).
Это некоторое событие, которое
описывает то, что произошло в нашем
приложении. Технически это обычный
JavaScript объект,
содержащий поле type
, в которое мы вписываем
название действия.
Вторым важным полем объекта с действием
является поле payload
.
Оно будет содержать полезную нагрузку
действия. Под полезной нагрузкой понимается
некоторые данные, которые передаются
параметрами в действие.
Также в этом объекте могут быть и другие поля с дополнительной информацией.
Давайте для примера создадим действие
и назовем его addOrderAction
. Пусть
оно отвечает за добавление заказа.
Значит в свойстве type
мы укажем, что
заказ добавлен (orderAdded
) в заказы
(orders
). А в payload
укажем подробнее,
что за заказ, к примеру - покрасить
стену:
const addOrderAction = {
type: 'orders/orderAdded',
payload: 'Paint a wall'
}
Чтобы каждый раз не писать объект
с действием вручную, мы можем использовать
так называемый action creator - функцию,
которая будет создавать и возвращать
нам объект с действием. Назовем ее
addOrder
. Параметром мы будем
передавать ей нужный нам текст для
свойства payload
:
const addOrder = text => {
return {
type: 'orders/orderAdded',
payload: text
}
}
Следующее важное понятие в цепочке - это reducer (редьюсер) - функция, которая принимает текущее состояние и объект с действием. Эта функция решает, как обновить состояние и возвращает уже обновленный стейт, если это необходимо.
Следующие понятие - хранилище (store, стор) - это объект, в котором хранится текущее глобальное состояние Redux приложения. У этого объекта есть метод getState, с помощью которого можно получить текущее значение стейта.
У хранилища есть также метод dispatch. Вызвать его и передать объект с действием - это единственный способ, чтобы изменить стейт. В результате стор запустит функцию-редьюсер и сохранит у себя новое значение стейта.
И последнее понятие, которое мы рассмотрим в данном уроке - это селекторы. Селекторы - это специальные функции, которые знают, как извлечь информацию из стейта, находящегося в хранилище. Эти функции оказываются особо полезными при разрастании приложения и помогают избежать повторения кода.
Подробнее обо всех этих понятиях и о применении их на практике мы узнаем из следующих разделов этого учебника.