Uvod v alternative Redux

Redux je knjižnica JavaScript, ki je odprtokodna. Uporablja se za upravljanje stanja aplikacij. Redux se večino časa uporablja z drugimi knjižnicami Java, kot sta React in Angular, za gradnjo uporabniških vmesnikov. Redux lahko razumemo kot orodje za upravljanje države. Čeprav se najpogosteje uporablja z Reactom, je primeren za kateri koli JavaScript okvir ali njegovo knjižnico. Je zelo lahka, saj meri le 2 KB. Za katero koli aplikacijo, ki temelji na JavaScript, upravljanje države postane zmedeno, ko se velikost aplikacije poveča ali aplikacija postane bolj zapletena, zato za vzdrževanje teh stanj potrebujemo orodje za upravljanje držav, kot je Redux.

Redux je odlično orodje in njegov pomen je viden tudi po tem, da je popolnoma spremenil arhitekturo sprednjih aplikacij. Redux bi lahko bil odlično orodje za obvladovanje nekoga, ki išče novo službo, saj ponuja nekaj zanimivih ponudb z različnimi različicami Angularja in drugimi. Kombinacija React & Redux je še posebej pomembna za možnosti zaposlitve.

Definicija Redux

Princip delovanja Reduxa je precej preprost in preprost. Redux je mogoče obravnavati kot osrednjo trgovino, ki hrani celotno stanje aplikacije. Vsaka njegova komponenta lahko dostopa do danega shranjenega stanja, ne da bi potrebovala pošiljanje lastnosti iz ene komponente v drugo.

Obstajajo trije gradniki redukcije: akcije, shranjevanje in reduktorji.

1. Dejanja

To ni nič drugega kot dogodki. So način za pošiljanje podatkov iz aplikacije v prodajalno Redux. Podatki prihajajo iz interakcij uporabnikov ali klicev API ali predložitve obrazca.

2. reduktorji

To niso nič drugega kot čiste funkcije, ki po trenutnem stanju aplikacije izvedejo dano dejanje in nato vrnejo novo stanje. Ta stanja so pozneje shranjena kot predmeti in določajo tudi, kako se stanje izbrane aplikacije spreminja z odzivom na dejanje, poslano v trgovino.

3. Shranite

Trgovina, ki je jedro zasnove, vsebuje stanje uporabe. V kateri koli aplikaciji Redux je lahko samo ena trgovina. Lahko dostopate do shranjenega stanja in posodobite njegovo stanje ter nato registrirate ali odjavite poslušalce s pomočjo razpoložljivih pomožnih metod.

Redux je odličen, vendar je nekaj težav z uporabo Reduxa:

  • Težave pri prehodu na delo z reduktorji: - Če želite delati z redukcijskim programom, je treba skrbeti za funkcionalna načela programiranja in vedno vrniti novo vrednost glede na prejšnje stanje aplikacije. Včasih je to lahko enostavno, na primer ravnanje s preprostimi nizi ali predmeti ali preprostimi operacijami matrikov, a ko se kompleksnost nalog poveča, bi bila boljša ideja, da uporabite Immutable.json iz podobne knjižnice.
  • Ne ponavljajte sebe ali načela DRY: - Pri delu z Reduxom se morate držati nekaterih konvencij, kot so ustvarjanje vrst akcij ali ustvarjalcev dejanj in tudi reduktorji. Zaradi podobne logike, kot so operacije CRUD, je lahko koda Redux dejansko videti zelo podobna. Če dodate majhno funkcionalnost v takšnih primerih, boste morali dodati veliko logike redukcijskega preskušanja in primerov preizkusov. Zato bi bila boljša ideja, da razmislite o ponovnem prestrukturiranju ali uporabi pravila DRY.
  • Pazite na predstave: - Na koncu je resnično pomembno delovanje. Razvijalci ponavadi raje predstavljajo en sam vir resnice, ki ni le enostaven za vzdrževanje, ampak tudi za odpravljanje napak in preizkušanje, zato redux to ne ustreza. V Reduxu že majhna sprememba lahko sproži spremembe v strukturi DOM.

Seznam alternativ Redux

Sledijo glavne alternative za Redux, ki so naslednje:

1. MobX

To je nova knjižnica, ki ponuja veliko rešitev za zgoraj omenjene težave. Deluje na 3 točke in so stanje, izpeljave in dejanja. Z MobX se sinhronizacija med modeli in uporabniškim vmesnikom lahko izvede samodejno. Pri MobXu lahko uporabimo OOP in nekatere metode neposredno na izdelkih modelov. Tudi normalizacija predmetov ni potrebna, vendar je v trgovini Redux potrebna.

2. GraphQL

Relay & GraphQL stack je pravzaprav razmeroma star, vendar ni tako priljubljen kot Redux. Razvil ga je Facebook, ko je prišel, pa so ga opisali kot okvir za gradnjo podatkovnih reakcijskih aplikacij. Uporaba Relay z GraphQL je veliko edinstvenih prednosti. Največji med njimi je, da se ni treba spomniti iz sosednje perspektive, kako pridobiti podatke, da bi dobili potreben odziv.

3. Kombinezon

To je običajno rešitev za nekoga, ki ne želi uporabljati MobX-a, vendar čisti Redux tudi njemu / njej ni všeč. Kombinezon je okvir, ki temelji na Reduxu in omogoča pretok bolj samodejen. Za nekoga, ki ne mara graditi aplikacije iz nič (kar pomeni dodajanje in konfiguriranje številnih paketov), ​​je Jumpsuit zanje primeren. Daje poenostavljen sloj API za React in Redux.

4. Pomočniki / generatorji z običajnimi redux.js

Ena največjih težav, ki jo je mogoče prepoznati z aplikacijo Redux, je, da ima veliko podvojitev kode, tj. Da ne sledi načelu DRY. Conventional-redux.js je pristop, ki ga morate upoštevati v zvezi s tem, da poenostavite svoj potek dela.

Jumpsuit, Conventional-redux.js in številna druga taka orodja se osredotočajo na izboljšanje Reduxovega delovnega procesa. To so najprimernejša izbira za tiste, ki so seznanjeni z Reduxom in razumejo njegove in drugačne možnosti. To so tisti ljudje, ki so verjetno pripravili veliko podatkov ali stvari v državni logiki in resnično ne želijo tega znova in znova pisati ali je dal več truda pri učenju teh veščin.

Po drugi strani sta MobX in Relay & GraphQL zunaj Redux sklada. MobX je zelo enostavno naučiti. To je priporočljivo, če kdo želi zelo hitro pisati iz nič. Nasprotno, GraphQL potrebuje veliko časa, da lahko sestavi logiko pretoka podatkov v zaledju. Ko pa je to izvedeno, bo gradnja soočljivega izvajanja postala veliko lažja.

Primerjalna tabela alternativ Redux

Lastnosti

Redux MobX GraphQL

Kombinezon

Načelo sušenjaNeDaDaDa
ZapletVisokaNizkaSrednjaSrednja
Krivulja učenjaVisokaNizkaSrednjaNizka
UporabaPrimerno za preprosto uporaboPrimerno za kompleksno uporaboPrimerno za srednje veliko uporaboPrimerno za kompleksno uporabo

Priporočeni članki

To je vodnik o alternativah Redux. Tu smo razpravljali o zgornjih 4 možnostih Redux z njihovo primerjalno tabelo. Če želite izvedeti več, si oglejte tudi naslednji članek -

  1. Linux alternative
  2. Ubuntu alternative
  3. Nadomestne besede za WordPress
  4. Git alternative