Johdanto Redux-vaihtoehtoihin

Redux on JavaScript-kirjasto, joka on avoimen lähdekoodin. Sitä käytetään hallitsemaan sovellustilaa. Reduxia käytetään suurimman osan ajasta muiden javascript-kirjastojen, kuten React ja Angular, kanssa käyttöliittymien luomiseen. Redux voidaan ymmärtää valtionhallintatyökaluksi. Vaikka sitä käytetään yleisimmin Reaktin kanssa, se sopii mihin tahansa JavaScriptin kehykseen tai sen kirjastoon. Se on erittäin kevyt, vain 2 kt. Kaikkien JavaScript-pohjaisten sovellussovellusten tilanhallinnasta tulee sotkuista, kun sovelluksen koko kasvaa tai sovellus monimutkaistuu, joten tarvitsemme Reduxin kaltaisen valtionhallintatyökalun näiden tilojen ylläpitämiseen.

Redux on hieno työkalu, ja sen merkitys käy ilmi siitä, että se on muuttanut käyttöliittymäsovellusten arkkitehtuuria kokonaan. Redux voi olla hieno työkalu uuden työn hakemiseen, koska se tarjoaa mielenkiintoisia tarjouksia Angularin ja muiden versioista. React & Redux -yhdistelmä on erityisen tärkeä työmahdollisuuksien kannalta.

Määritelmä Redux

Reduxin toimintaperiaate on melko yksinkertainen ja suoraviivainen. Reduxia voidaan pitää keskuskauppana, joka hallitsee koko sovelluksen tilan. Jokainen sen komponentti voi käyttää annettua tallennettua tilaa tarvitsematta lähettää ominaisuutta komponenteilta toiselle.

Pelkistäviä rakenteita on kolme: toiminto-, säilytys- ja pelkistimet.

1. Toimet

Tämä ei ole muuta kuin tapahtumia. Ne ovat tapa lähettää tietoja sovelluksista Redux-kauppaan. Tiedot tulevat käyttäjän vuorovaikutuksesta tai API-kutsuista tai lomakkeen lähettämisestä.

2. Pelkistimet

Nämä eivät ole mitään muuta kuin puhdasta toimintoa, jotka suoritettuaan sovelluksen nykyisen tilan suorittavat annetun toimenpiteen ja palauttavat sitten uuden tilan. Nämä tilat tallennetaan myöhemmin objekteina ja ne myös määrittelevät, kuinka valitun sovelluksen tila muuttuu kauppaan lähetetyn toiminnan vastauksen kanssa.

3. Varastoi

Kaupassa, joka on suunnittelun ydin, on sovellustila. Missä tahansa Redux-sovelluksessa voi olla vain yksi myymälä. Tallennettua tilaa voidaan päivittää ja päivittää sen tila, ja sitten rekisteröidä tai poistaa rekisteröidyt kuulijat käytettävissä olevien auttajamenetelmien avulla.

Redux on hieno, mutta Reduxin käyttöön liittyy joitain ongelmia:

  • Vaikeudet siirtyä pelkistimien kanssa työskentelemään: - Voidaksesi toimia reduxilla, täytyy huolehtia toiminnallisista ohjelmointiperiaatteista ja palauttaa aina uusi arvo, joka perustuu aiempaan sovellustilaan. Joskus tämä voi olla helppoa, kuten yksinkertaisten merkkijonojen tai objektien tai yksinkertaisten ryhmäoperaatioiden käsitteleminen, mutta tehtävän monimutkaisuuden lisääntyessä parempi idea olisi todennäköisesti käyttää Immvable.json samankaltaisesta kirjastosta.
  • Älä toista itseäsi tai DRY-periaate: - Reduxin kanssa työskenteleminen edellyttää joidenkin käytäntöjen pitämistä, kuten toimintotyyppien tai toimien luomisten ja myös niiden vähentäjien luomista. Samankaltaisissa logiikoissa, kuten CRUD-toiminnot, Redux-koodi voi todella näyttää hyvin samanlaiselta. Pienten toimintojen lisääminen tällaisissa tapauksissa vaatii paljon redux-logiikan ja testitapausten lisäämistä. Siksi parempi idea olisi ajatella uudelleenkehittämistä tai DRY-säännön noudattamista.
  • Esitykset välittävät: - Loppujen lopuksi tärkeintä on esiintyminen. Kehittäjät haluavat yleensä saada yhden totuuden lähteen, jonka ylläpito ei ole vain helppoa, vaan myös virheenkorjausta ja testaamista, joten redux ei sovi siihen. Redux-versiossa jopa pieni muutos voi laukaista muutoksia DOM-rakenteessa.

Luettelo Redux-vaihtoehdoista

Seuraavassa on Reduxin tärkeimmät vaihtoehdot, jotka ovat seuraavat:

1. MobX

Tämä on uusi kirjasto, joka tarjoaa paljon ratkaisuja edellä mainittuihin ongelmiin. Se toimii 3 pisteessä ja ne ovat tila, johdannaisia ​​ja toimia. MobX: n avulla mallien ja käyttöliittymän synkronointi voidaan tehdä automaattisesti. MobX: n avulla voidaan käyttää OOP: ta ja joitain menetelmiä suoraan mallien tuotteisiin. Objektien normalisointia ei myöskään tarvita, mutta Redux-kaupassa sitä tarvitaan.

2. GraphQL

Relay & GraphQL-pino on oikeastaan ​​suhteellisen vanha, mutta ei niin suosittu kuin Redux. Sen on kehittänyt Facebook, ja kun se tuli, sitä kuvailtiin puitteiksi datavetoisten reagointisovellusten rakentamiseksi. Releen käyttämisestä GraphQL: n kanssa on monia ainutlaatuisia etuja. Suurin joukossa on, että etunäkökulmasta ei tarvitse muistaa kuinka hakea tietoja vaaditun vastauksen saamiseksi.

3. Jumpsuit

Tämä on ratkaisu yleensä henkilölle, joka ei halua käyttää MobX: ta, mutta puhdas Redux ei myöskään houkuttele häntä. Jumpsuit on Reduxiin perustuva kehys, joka tekee virtauksesta automaattisemman. Jollei halua rakentaa sovellusta tyhjästä (mikä tarkoittaa monien pakettien lisäämistä ja määrittämistä), Jumpsuit sopii heille. Se antaa yksinkertaistetun API-tason sekä Reactille että Reduxille.

4. Auttajat / generaattorit tavanomaisella redux.js

Yksi suurimmista Redux-sovelluksessa tunnistettavista ongelmista on, että siinä on paljon koodin päällekkäisyyksiä eli se ei noudata DRY-periaatetta. Tavanomainen-redux.js on tässä suhteessa noudatettava lähestymistapa työnkulun yksinkertaistamiseksi.

Jumpsuit, Tavallinen-redux.js ja monet muut sellaiset työkalut keskittyvät parantamaan Redux-työnkulkua. Nämä ovat ensisijainen valinta niille, jotka tuntevat Reduxin ja ymmärtävät sen hyvät puolet. Nämä ovat ihmisiä, jotka ovat todennäköisesti laatineet paljon tietoja tai valtion logiikkaa, eivätkä halua kirjoittaa tätä uudestaan ​​ja uudestaan ​​tai ovat laittaneet enemmän vaivaa näiden taitojen oppimiseen.

Toisaalta MobX ja Relay & GraphQL ovat Redux-pinon ulkopuolella. MobX on erittäin helppo oppia. Tätä suositellaan, jos joku haluaa kirjoittaa tyhjästä nopeasti. GraphQL, päinvastoin, tarvitsee paljon aikaa voidakseen rakentaa taustatietojen virtauslogiikan. Mutta kun se on tehty, toteutuksen rakentaminen eteenpäin on paljon helpompaa.

Redux-vaihtoehtojen vertailutaulukko

ominaisuudet

Redux MobX GraphQL

Jumpsuit

KUIVA-periaateEiJooJooJoo
KomplikaatioKorkeaMatalakeskikokoinenkeskikokoinen
OppimiskäyräKorkeaMatalakeskikokoinenMatala
hakemusSoveltuu yksinkertaiseen levitykseenSoveltuu monimutkaiseen käyttöönSopii keskikokoisiin sovelluksiinSoveltuu monimutkaiseen käyttöön

Suositellut artikkelit

Tämä on ollut opas Redux-vaihtoehdoista. Täällä olemme keskustelleet 4 parhaasta Redux-vaihtoehdosta vertailutaulukon kanssa. Voit myös tarkastella seuraavaa artikkelia saadaksesi lisätietoja -

  1. Linux-vaihtoehdot
  2. Ubuntun vaihtoehdot
  3. WordPress-vaihtoehdot
  4. Git Vaihtoehtoja