Redux Flashcards
Redux
Redux - библиотека управления состоянием для JavaScript.
В Redux создается один стейт менеджер.
Основная идея Redux: создание единого хранилища store - объекта JavaScript, содержащего данные приложения.
Store - объект, у которого есть свойства и методы.
Свойством является наше state приложение, то что нам отдает rootReducer, методы - dispatch, discribe, getState
dispatch - функция, которая принимает action и отправляет его в редьюсер.
Если мы диспатчим какой-то экшн, то он летит сразу во все редьюсеры.
discribe - функция (метод), который позволяет нам подписаться на весь стейт или его кусочек - зашит в хук
getState - метод, который позволяет получить доступ к стейту.
Стейт будет лежать глобальный , будет лежать состояние редьюсеров, которые они попадут.
Поэтому для параметра state в reducer требуется задать значение по дефолту, равное начальному состоянию, а также, если в switch не найдено совпадений в кейсах, то в default должен быть возвращен state без изменения.
Основные принципы Redux:
- Единственный источник правды (Single Source of Truth): состояние всего приложения хранится в одном объекте-хранилище (store). Это упрощает управление состоянием и делает его предсказуемым;
- Изменения осуществляются через действия (Changes are made through Actions): для изменения состояния в Redux используются действия (actions) - простые объекты, описывающие, что произошло в приложении. Действия отправляются в редьюсеры (reducers), которые обрабатывают их и возвращают новое состояние;
- Чистые функции-редьюсеры (Pure Reducer Functions): функции, которые принимают предыдущее состояние и действие, и возвращают новое состояние. Они не должны иметь побочных эффектов и должны быть предсказуемыми.
В Redux состояние хранится за пределами React’а внутри store, то есть не внутри компонентов. Один объект store, в котором в виде вложенных подобъектов хранятся его части.
Redux - стейт-менеджер, который позволяет нам создавать глобальное состояние для нашего приложения и эффективно им управлять.