Въведение в алтернативите на Redux

Redux е библиотека с JavaScript, която е с отворен код. Използва се за управление на състоянието на приложението. Redux се използва през повечето време с други javascript библиотеки като React и Angular за изграждане на потребителски интерфейси. Redux може да се разбира като инструмент за управление на държавата. Въпреки че най-често се използва с React, той е подходящ за всяка JavaScript рамка или нейната библиотека. Той е много лек, измерващ само 2KB. За всяко приложение, базирано на JavaScript, управлението на държавата става разхвърляно, когато размерът на приложението се увеличава или приложението става по-сложно и по този начин се нуждаем от инструмент за управление на състоянието, като Redux, за да поддържаме тези състояния.

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

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

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

Има три строителни елемента на редукс: действия, съхранение и редуктори.

1. Действия

Това не е нищо друго освен събития. Те са начинът за изпращане на данни от приложението до магазин Redux. Данните идват от потребителски взаимодействия или API обаждания или представяне на формуляри.

2. Редуктори

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

3. Магазин

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

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

  • Трудност при преминаване към работа с редуктори: - За да може да работи със redux, човек трябва да се грижи за принципите на функционалното програмиране и винаги да връща нова стойност въз основа на предишното състояние на приложението. Понякога това може да е лесно като обработка на прости низови или обекти или прости операции с масив, но тъй като сложността на задачите се увеличава, по-добрата идея вероятно би била използването на Immutable.json от подобна библиотека.
  • Не повтаряйте себе си или принципа на сушене: - Работата с Redux изисква спазване на някои конвенции, като например създаване на типове действия или създатели на действия, а също и редуктори. За подобна логика, като например CRUD операции, Redux кодът всъщност може да изглежда много подобно. Добавянето на малка функционалност в такива случаи ще трябва да добавите много редукционна логика и тестови случаи. По този начин, по-добра идея би било да помислите за рефакторинг или следване на правило за DRY.
  • Погрижете се за изпълненията: - В крайна сметка това, което наистина има значение, е изпълнението. Разработчиците обикновено предпочитат да имат един източник на истина, който е не само лесен за поддръжка, но и за отстраняване на грешки и тестове, и следователно редуксът не отговаря на това. В Redux дори малка промяна може да предизвика промени в структурата на DOM.

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

Следват основните алтернативи за Redux, които са както следва:

1. MobX

Това е нова библиотека, която предоставя много решения за гореспоменатите проблеми. Тя работи на 3 точки и те са състояние, производни и действия. С MobX синхронизацията между моделите и потребителския интерфейс може да се извърши автоматично. С MobX човек може да използва OOP и някои методи директно върху артикулите на моделите. Нормализирането на обекти също не се изисква, но в магазина Redux е необходимо.

2. GraphQL

Relay & GraphQL стека всъщност е сравнително стар, но не толкова популярен като Redux. Той е разработен от Facebook и когато се появи, той беше описан като рамка за изграждане на данни, базирани на реакции. Има много уникални предимства от използването на Relay с GraphQL. Най-голямото сред тях е, че не е необходимо да се помни от фронталната перспектива как да се получат данни, за да се получи необходимия отговор.

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

Това обикновено е решение за някой, който не иска да използва MobX, но чистият Redux също не му се харесва. Комбинезонът е рамка, която се основава на Redux и прави потока по-автоматичен. За някой, който не обича да изгражда приложение от нулата (което означава добавяне и конфигуриране на много пакети), тогава Jumpsuit е подходящ за тях. Той дава опростен слой за API както за React, така и за Redux.

4. Помощници / генератори с конвенционални redux.js

Един от най-големите проблеми, който може да бъде разпознат с приложението Redux, е, че има много дублиране на кодове, т.е. не следва принципа на DRY. Conventional-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 Алтернативи