Wprowadzenie do alternatywnych opcji Redux

Redux to biblioteka JavaScript, która jest oprogramowaniem typu open source. Służy do zarządzania stanem aplikacji. Redux jest używany przez większość czasu z innymi bibliotekami javascript, takimi jak React i Angular, do tworzenia interfejsów użytkownika. Redux można rozumieć jako narzędzie zarządzania stanem. Mimo że jest najczęściej używany z React, jest odpowiedni dla dowolnej struktury JavaScript lub jej biblioteki. Jest bardzo lekki, mierzy tylko 2 KB. W przypadku każdej aplikacji opartej na JavaScript zarządzanie stanem staje się nieuporządkowane, gdy zwiększa się rozmiar aplikacji lub aplikacja staje się bardziej złożona, dlatego potrzebujemy narzędzia do zarządzania stanem, takiego jak Redux, aby utrzymać te stany.

Redux jest doskonałym narzędziem, a jego znaczenie jest oczywiste, ponieważ całkowicie zmienił architekturę aplikacji front-end. Redux może być świetnym narzędziem do opanowania dla kogoś, kto szuka nowej pracy, ponieważ zapewnia ciekawe oferty z różnymi wersjami Angulara i innymi. Kombinacja React i Redux jest szczególnie ważna dla perspektyw pracy.

Definicja Redux

Zasada działania Redux jest dość prosta i jednoznaczna. Redux można uznać za centralny sklep, który przechowuje cały stan aplikacji. Każdy z jego komponentów może uzyskać dostęp do danego stanu przechowywanego bez konieczności wysyłania właściwości z jednego komponentu do drugiego.

Istnieją trzy elementy składowe redux: akcje, sklep i redukcje.

1. Działania

To nic innego jak wydarzenia. Są sposobem na przesyłanie danych z aplikacji do sklepu Redux. Dane pochodzą z interakcji użytkownika, wywołań API lub przesłania formularza.

2. Reduktory

Są to wyłącznie funkcje, które po przyjęciu bieżącego stanu aplikacji wykonują daną akcję, a następnie zwracają nowy stan. Stany te są później przechowywane jako obiekty i określają również, jak zmienia się stan wybranej aplikacji w odpowiedzi na akcję wysłaną do sklepu.

3. Sklep

Sklep, który jest rdzeniem projektu, ma stan aplikacji. W każdej aplikacji Redux może być tylko jeden sklep. Można uzyskać dostęp do stanu zapisanego i zaktualizować jego stan, a następnie zarejestrować lub wyrejestrować detektory za pomocą dostępnych metod pomocniczych.

Redux jest świetny, ale są pewne problemy z używaniem Redux:

  • Trudności w przejściu do pracy z reduktorami: - Aby móc pracować z redux, należy zadbać o funkcjonalne zasady programowania i zawsze zwracać nową wartość w oparciu o poprzedni stan aplikacji. Czasami może to być łatwe, takie jak obsługa prostych ciągów znaków lub obiektów lub prostych operacji tablicowych, ale wraz ze wzrostem złożoności zadania lepszym pomysłem byłoby prawdopodobnie użycie Immutable.json z podobnej biblioteki.
  • Nie powtarzaj się ani zasada DRY: - Praca z Redux wymaga zachowania pewnych konwencji, takich jak tworzenie typów akcji lub twórców akcji, a także reduktorów. Dla podobnych logiki, takich jak operacje CRUD, kod Redux może faktycznie wyglądać bardzo podobnie. Dodanie małej funkcjonalności w takich przypadkach będzie wymagało dodania dużej ilości logiki redux i przypadków testowych. Dlatego lepszym pomysłem byłoby zastanowienie się nad refaktoryzacją lub przestrzeganiem zasady DRY.
  • Dbaj o występy: - Ostatecznie najważniejsze jest wykonanie. Programiści zazwyczaj wolą mieć jedno źródło prawdy, które jest nie tylko łatwe w utrzymaniu, ale także debugowaniu i testowaniu, a zatem redux nie odpowiada temu. W Redux nawet niewielka zmiana może wywołać zmiany w strukturze DOM.

Lista alternatywnych opcji

Oto główne alternatywy dla Redux, które są następujące:

1. MobX

Jest to nowa biblioteka, która zapewnia wiele rozwiązań wyżej wymienionych problemów. Działa na 3 punktach i są to stan, pochodne i działania. Dzięki MobX synchronizacja między modelami i interfejsem użytkownika może odbywać się automatycznie. Dzięki MobX można używać OOP i niektórych metod bezpośrednio na elemencie modeli. Normalizacja obiektów również nie jest wymagana, ale w sklepie Redux jest potrzebna.

2. GraphQL

Stos Relay & GraphQL jest w rzeczywistości stosunkowo stary, ale nie tak popularny jak Redux. Został opracowany przez Facebooka, a kiedy przyszedł, został opisany jako środowisko do tworzenia aplikacji reagujących na dane. Istnieje wiele unikalnych zalet używania Relay z GraphQL. Największą z nich jest to, że nie trzeba pamiętać z perspektywy interfejsu o tym, jak pobrać dane, aby uzyskać wymaganą odpowiedź.

3. Kombinezon

Jest to rozwiązanie zazwyczaj dla kogoś, kto nie chce korzystać z MobX, ale czysty Redux również do niego nie przemawia. Kombinezon jest strukturą opartą na systemie Redux i sprawia, że ​​przepływ jest bardziej automatyczny. Dla kogoś, kto nie lubi budować aplikacji od zera (co oznacza dodawanie i konfigurowanie wielu pakietów), odpowiedni jest dla nich Jumpsuit. Daje uproszczoną warstwę API dla React i Redux.

4. Pomocniki / generatory z konwencjonalnym plikiem redux.js

Jednym z największych problemów, które można rozpoznać w aplikacji Redux, jest to, że ma wiele duplikatów kodu, tj. Nie przestrzega zasady DRY. Conventional-redux.js to podejście, które należy zastosować w tym zakresie, aby uprościć przepływ pracy.

Jumpsuit, Conventional-redux.js i wiele innych takich narzędzi koncentruje się na poprawie przepływu pracy w Redux. Jest to preferowany wybór dla tych, którzy znają Redux i rozumieją jego tajniki., Są to ci ludzie, którzy prawdopodobnie przygotowali wiele danych lub logiki stanów i naprawdę nie chcą przepisać tego od nowa, ani też większy wysiłek w uczeniu się tych umiejętności.

Z drugiej strony, MobX oraz Relay & GraphQL są poza stosem Redux. MobX jest bardzo łatwy do nauczenia. Jest to zalecane, jeśli ktoś chce bardzo szybko pisać od zera. Przeciwnie, GraphQL wymaga dużo czasu, aby zbudować logikę przepływu danych zaplecza. Ale kiedy to nastąpi, tworzenie frontów stanie się znacznie łatwiejsze.

Tabela porównawcza alternatywnych rozwiązań

cechy

Redux MobX GraphQL

Kombinezon

Zasada DRYNietaktaktak
PowikłanieWysokiNiskaŚredniŚredni
Krzywa uczenia sięWysokiNiskaŚredniNiska
PodanieNadaje się do prostej aplikacjiNadaje się do złożonych aplikacjiNadaje się do średnich aplikacjiNadaje się do złożonych aplikacji

Polecane artykuły

To był przewodnik po alternatywach Redux. Tutaj omówiliśmy 4 najlepsze alternatywy Redux z ich tabelą porównawczą. Możesz także spojrzeć na następujący artykuł, aby dowiedzieć się więcej -

  1. Alternatywy dla systemu Linux
  2. Alternatywy Ubuntu
  3. Alternatywy WordPress
  4. Alternatywy Git