# Основные термины в 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. Вызвать его и передать объект с действием - это единственный способ, чтобы изменить стейт. В результате стор запустит функцию-редьюсер и сохранит у себя новое значение стейта.

И последнее понятие, которое мы рассмотрим в данном уроке - это селекторы. Селекторы - это специальные функции, которые знают, как извлечь информацию из стейта, находящегося в хранилище. Эти функции оказываются особо полезными при разрастании приложения и помогают избежать повторения кода.

Подробнее обо всех этих понятиях и о применении их на практике мы узнаем из следующих разделов этого учебника.

← →
↑