Переход к Redux

Redux - это не монолитный фреймворк, но набор контрактов и несколько функций, которые заставляют их работать вместе. Большая часть вашего «Redux кода» не будет использовать Redux API, когда большую часть времени вы будете писать функции.

Это позволяет быть легко переносимым как в, так и из Redux.
Мы не хотим вас ограничивать!

Из Flux

Редьюсеры сохраняют «суть» хранилищ Flux, так что можно постепенно перенести существующий Flux-проект в Redux, используете ли вы Flummox, Alt, традиционный Flux или любую другую Flux библиотеку.

Это также можно сделать и обратно и мигрировать из Redux в любую из этих библиотек, следуя теми же шагами.

Ваш процесс будет выглядеть следующим образом:

  • Создайте функцию под названием createFluxStore(reducer), которая создает Flux-хранилище совместимое с вашим существующим приложением из функции редьюсера. Внутри она может выглядеть аналогично методу createStore (source) из Redux. Ее обработчик отправки должен просто вызвать редьюсер для любых действий, сохранить следующее состояние и запустить изменения.

  • Это позволяет постепенно переписать каждый Flux Store в вашем приложении, как редьюсер, но по-прежнему экспортировать createFluxStore(reducer), чтобы остальная часть вашего приложения не знала, что это происходит и видела хранилища Flux.

  • Когда вы перепишите ваши Хранилища, вы обнаружите, что вам нужно избегать определенных Flux анти-шаблонов, таких как, извлечение данных внутри Хранилища или запуск действия внутри Хранилища. Ваш Flux код будет легче сопровождать, после того, как вы портируете его, основываясь на редьюсерах!

  • Когда вы портировали все ваши Flux Stores, реализованые поверх редьюсеров, вы можете заменить Flux библиотеку на единственное хранилище Redux и объединить те редьюсеры, которые у вас уже есть, в один, с помощью combineReducers(reducers).

  • Теперь все что осталось сделать - это портировать UI, чтобы использовать react-redux или эквивалент.

  • Наконец вы можете начать использовать некоторые Redux-идиомы в качестве посредников, для дальнейшего упрощения асинхронного кода.

Из Backbone

Извините, вам будет нужно переписать ваш уровень модели.
Они слишком разные!