Перейти к содержанию

Мигрирование на Redux

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

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

Мигрирование с Flux

Редьюсеры несут в себе “суть” Flux-сторов, так что возможно постепенно перенести существующий Flux-проект на Redux. При этом не важно, используете ли вы Flummox, Alt, стандартный Flux или любую другую Flux-библиотеку.

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

Ваш процесс перехода будет выглядеть примерно так:

  • Добавляете функцию createFluxStore(reducer), которая создает Flux-стор, совместимый с вашим существующим приложение, из функции-редьюсера. Внутри она может выглядеть как createStore (источник) реализация из Redux. Ее обработчик должен просто вызывать reducer на любой экшен, сохранять следующее состояние, и выделять изменения.
  • Это позволяет вам постепенно переписывать каждый Flux-стор в приложении на редьюсер, но все еще поддерживать createFluxStore(reducer), так что остальная часть вашего приложения не знает, что происходит переход, и видит Flux-стор.
  • Как только вы переписали свои сторы, вы обнаружите, что вам надо избавиться от определенных анти-паттернов Flux, таких как использование API или генерирование экшенов внутри стора. Ваш Flux код будет легче после того, как вы перенесете это в редьюсеры.
  • Когда вы перенесли все ваши Flux-сторы на редьюсеры, вы можете заменить Flux-библиотеку одним Redux-стором и объединить все эти только что созданные редьюсеры с помощью combineReducers(reducers).
  • Теперь все, что осталось, — это переписать интерфейс с использованием react-redux или аналогов.
  • В конце, вам могут понадобиться некоторые Redux-идеомы, такие как мидлвар, для дальнейшего упрощения асинхронного кода.

Мигрирование с Backbone

Слой модели Backbone довольно сильно отличается от Redux, поэтому мы не предлагаем смешивать их. Если возможно, лучше переписать слой модели вашего приложения с нуля вместо подсоединения Backbone к Redux. Однако, если переписывание невозможно, вы можете использовать backbone-redux, чтобы постепенно перейти и сохранить Redux-стор синхронизированным с Backbone моделями и коллекциями.