Введение в альтернативы Redux

Redux - это библиотека JavaScript с открытым исходным кодом. Используется для управления состоянием приложения. Redux чаще всего используется с другими библиотеками javascript, такими как React и Angular, для создания пользовательских интерфейсов. Redux можно понимать как инструмент управления состоянием. Несмотря на то, что он чаще всего используется с React, он подходит для любого фреймворка JavaScript или его библиотеки. Это очень легкий вес всего 2 КБ. Для любого приложения на основе JavaScript управление состояниями становится запутанным, когда размер приложения увеличивается или приложение становится более сложным, и поэтому нам необходим инструмент управления состоянием, такой как Redux, для поддержания этих состояний.

Redux - отличный инструмент, и его важность очевидна тем, что он полностью изменил архитектуру интерфейсных приложений. Redux может быть отличным инструментом для освоения для тех, кто ищет новую работу, потому что он предоставляет некоторые интересные предложения с различными версиями Angular и другими. Комбинация React & Redux особенно важна для перспектив трудоустройства.

Определение Redux

Принцип работы Redux довольно прост и понятен. Redux можно рассматривать как центральное хранилище, в котором хранится все состояние приложения. Каждый из его компонентов может получить доступ к заданному сохраненному состоянию, не требуя отправки свойства вниз от одного компонента к другому.

Существуют три стандартных блока избыточности: действия, хранилище и редукторы.

1. Действия

Это ничего, кроме событий. Это способ отправки данных из приложения в хранилище Redux. Данные поступают от взаимодействия с пользователем или вызовов API или отправки формы.

2. Редукторы

Это не что иное, как чистые функции, которые после получения текущего состояния приложения выполняют заданное действие и затем возвращают новое состояние. Эти состояния позже сохраняются как объекты, и они также определяют, как изменяется состояние выбранного приложения в ответ на действие, отправленное в хранилище.

3. Магазин

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

Redux хорош, но есть некоторые проблемы с использованием Redux:

  • Трудность перехода на работу с редукторами: - Чтобы иметь возможность работать с редуксом, нужно заботиться о принципах функционального программирования и всегда возвращать новое значение на основе предыдущего состояния приложения. Иногда это может быть легко, например, обработка простых строк или объектов или простых операций с массивами, но по мере увеличения сложности задачи, вероятно, лучше будет использовать Immutable.json из аналогичной библиотеки.
  • Не повторяйте себя или принцип СУХОГО: - Работа с Redux требует соблюдения некоторых соглашений, таких как создание типов действий или создателей действий, а также редукторов. Для аналогичной логики, такой как операции CRUD, код Redux может выглядеть очень похоже. Добавление небольших функций в таких случаях потребует добавления большого количества логики и тестовых примеров. Таким образом, лучшей идеей было бы подумать о рефакторинге или следовании правилу СУХОЙ.
  • Забота о выступлениях: - В конце концов, что действительно важно, так это производительность. Разработчики обычно предпочитают иметь единый источник правды, который не только прост в обслуживании, но также отлаживается и тестируется, и, следовательно, избыточность не подходит для этого. В Redux даже небольшое изменение может вызвать изменения в структуре DOM.

Список альтернатив Redux

Ниже приведены основные альтернативы для Redux:

1. MobX

Это новая библиотека, которая предоставляет множество решений для вышеупомянутых проблем. Это работает на 3 пункта, и они - состояние, деривации и действия. С MobX синхронизация между моделями и пользовательским интерфейсом может выполняться автоматически. С MobX можно использовать ООП и некоторые методы непосредственно на модели. Нормализация объектов также не требуется, но в хранилище Redux это необходимо.

2. GraphQL

Стек Relay & GraphQL на самом деле сравнительно стар, но не так популярен, как Redux. Он разработан Facebook, и когда он появился, его описали как основу для создания управляемых данными приложений реагирования. Есть много уникальных преимуществ использования Relay с GraphQL. Самым большим из них является то, что нет необходимости помнить с точки зрения внешнего интерфейса о том, как получать данные, чтобы получить требуемый ответ.

3. Комбинезон

Обычно это решение для кого-то, кто не хочет использовать MobX, но чистый Redux также ему не нравится. Комбинезон - это фреймворк, основанный на Redux и делающий процесс более автоматическим. Для тех, кто не любит создавать приложения с нуля (что означает добавление и настройку множества пакетов), тогда для них подходит Jumpsuit. Это дает упрощенный уровень API для React и Redux.

4. Помощники / генераторы с обычным redux.js

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

Jumpsuit, Conventional-redux.js и многие другие подобные инструменты направлены на улучшение рабочих процессов Redux. Это предпочтительный выбор для тех, кто знаком с Redux и понимает его входы и выходы. Это те люди, которые, вероятно, подготовили много данных или логику состояния и не хотят переписывать это снова и снова или поставили больше усилий в изучении этих навыков.

С другой стороны, MobX и Relay & GraphQL находятся за пределами стека Redux. MobX очень прост в освоении. Это рекомендуется, если кто-то хочет писать с нуля очень быстро. Для GraphQL, напротив, требуется много времени, чтобы построить логику потока данных на сервере. Но как только это будет сделано, создание фронтальной реализации станет намного проще.

Сравнительная таблица альтернатив Redux

Характеристики

Redux MobX GraphQL

Комбинезон

СУХОЙ принципнетдадада
усложнениеВысокоНизкийсреднийсредний
Кривая обученияВысокоНизкийсреднийНизкий
заявкаПодходит для простого примененияПодходит для комплексного примененияПодходит для среднего размераПодходит для комплексного применения

Рекомендуемые статьи

Это было руководство по альтернативам Redux. Здесь мы обсудили 4 лучших варианта Redux с таблицей сравнения. Вы также можете посмотреть следующую статью, чтобы узнать больше -

  1. Альтернативы Linux
  2. Ubuntu Альтернативы
  3. Альтернативы WordPress
  4. Git Альтернативы