Академический Документы
Профессиональный Документы
Культура Документы
Три принципа
Редюсеры (Reducers)
Редюсеры определяют, как состояние приложения изменяется в ответ на экшены,
отправленные в стор. Помните, что экшены только описывают, _что произошло, но
не описывают, как изменяется состояние приложения.
Стор (Store)
Стор (Store) — это объект, который соединяет эти части вместе. Стор берет на себя
следующие задачи:
1. Вы вызываете store.dispatch(action).
2. Redux-стор вызывает функцию-редюсер, который вы ему
передали(Стор передаст два аргумента при вызове редюсера: текущее
дерево состояния (current state tree) и экшен (action).
3. Главный редюсер может комбинировать результат работы нескольких
редюсеров в единственное дерево состояния приложения.
4. Redux-стор сохраняет полное дерево состояния, которое возвращает
главный редюсер.
Redux Thunk это middleware библиотека, которая позволяет вам вызвать action
creator, возвращая при этом функцию вместо объекта. Функция принимает метод
dispatch как аргумент, чтобы после того, как асинхронная операция завершится,
использовать его для диспатчинга обычного синхронного экшена, внутри тела
функции.
Можно представить это так, что saga — это как отдельный поток в вашем приложении,
который отвечает за побочные эффекты. redux-saga — это мидлвар redux, что означает,
что этот поток может запускаться, останавливаться и отменяться из основного
приложения с помощью обычных действий redux, оно имеет доступ к полному состоянию
redux приложения и также может диспатчить действия redux.
Библиотека использует концепцию ES6, под названием генераторы, для того, чтобы
сделать эти асинхронные потоки легкими для чтения, написания и тестирования. (если вы
не знакомы с этим, здесь есть некоторые ссылки для ознакомления) Тем самым, эти
асинхронные потоки выглядят, как ваш стандартный синхронный JavaScript-код.
(наподобие async/await, но генераторы имеют несколько отличных возможностей,
необходимых нам)