Миграция на Redux
Redux — это не монументальная система, а набор контрактов и нескольких функций, которые позволяют им взаимодействовать. Большая часть вашего «кода Redux» даже не будет использовать API Redux, так как в большинстве случаев вы будете писать функции.
Это делает миграцию как в Redux, так и из него лёгкой.
Мы не хотим вас ограничивать!
Из Flux
Редьюсеры захватывают «суть» Flux-хранилищ, поэтому можно постепенно мигрировать существующий проект Flux в Redux, используя Flummox, Alt, традиционную Flux или любую другую библиотеку Flux.
Также можно выполнить обратную миграцию из Redux в любую из этих библиотек, следуя тем же шагам.
Процесс будет выглядеть так:
-
Создайте функцию под названием
createFluxStore(reducer), которая создаёт совместимое с вашим существующим приложением Flux-хранилище из функции-редьюсера. Внутренне она может выглядеть похожей наcreateStore(исходный код) реализацию из Redux. Обработчик dispatch должен просто вызыватьreducerдля любого действия, сохранять следующее состояние и генерировать событие изменения. -
Это позволяет постепенно переписывать каждое Flux-хранилище в вашем приложении в виде редьюсера, но всё ещё экспортировать
createFluxStore(reducer), чтобы остальная часть вашего приложения не знала, что это происходит, и видела хранилища Flux. -
При переписывании хранилищ вы обнаружите, что вам нужно избегать определённых антипаттернов Flux, таких как получение данных из API внутри хранилища или вызов действий внутри хранилищ. Ваш код Flux станет более понятным, как только вы перенесёте его на основе редьюсеров!
-
Когда вы перенесёте все Flux-хранилища в реализацию на основе редьюсеров, вы можете заменить библиотеку Flux на одно хранилище Redux и объединить имеющиеся редьюсеры в один с помощью
combineReducers(reducers). -
Теперь всё, что осталось сделать, это перенести пользовательский интерфейс в react-redux или эквивалент.
-
Наконец, вы можете начать использовать некоторые Redux-идиомы, такие как middleware, чтобы ещё больше упростить свой асинхронный код.
Из Backbone
Модельная часть Backbone сильно отличается от Redux, поэтому мы не рекомендуем их смешивать. Если это возможно, лучше переписать модельную часть вашего приложения с нуля, вместо того, чтобы подключать Backbone к Redux. Однако, если переписывание нецелесообразно, вы можете использовать backbone-redux для постепенной миграции и поддержания синхронизации хранилища Redux с моделями и коллекциями Backbone.
Если ваш код Backbone слишком велик для быстрого переписывания или вы не хотите управлять взаимодействием между хранилищем и моделями, используйте backbone-redux-migrator для совместного существования двух кодовых баз, сохраняя при этом надёжное разделение. После завершения переписывания код Backbone можно удалить, и ваше приложение Redux сможет работать самостоятельно после настройки маршрутизатора.
© 2015–2017 Dan Abramov
Licensed under the MIT License.
http://redux.js.org/docs/recipes/MigratingToRedux.html