Uvod u Redux alternative

Redux je JavaScript biblioteka koja je otvorenog koda. Koristi se za upravljanje stanjem aplikacije. Redux se najčešće koristi s drugim JavaScript knjižnicama poput React i Angular za izgradnju korisničkih sučelja. Redux se može shvatiti kao alat za upravljanje državom. Iako se najčešće koristi s Reactom, pogodan je za bilo koji JavaScript okvir ili njegovu biblioteku. Vrlo je lagan, mjeri samo 2KB. Za bilo koju aplikaciju temeljenu na JavaScript-u, upravljanje državom postaje neuredno kada se povećava veličina aplikacije ili aplikacija postaje složenija, pa nam je potreban alat za upravljanje državom, poput Reduxa za održavanje ovih stanja.

Redux je sjajan alat i njegova važnost očita je po tome što je u potpunosti promijenio arhitekturu front-end aplikacija. Redux bi mogao biti sjajan alat za savladavanje nekoga tko traži novi posao jer pruža zanimljive ponude s različitim verzijama Angular-a i drugima. Kombinacija React & Redux posebno je važna za izglede za posao.

Definicija Redux

Princip rada Reduxa prilično je jednostavan i jasan. Redux se može smatrati središnjom prodavaonicom koja drži čitavo stanje aplikacije. Svaka njegova komponenta može pristupiti zadanom stanju pohranjenih bez potrebe za slanjem svojstva s jedne komponente na drugu.

Postoje tri bloka redukcije: akcije, spremanje i reduktori.

1. Akcije

Ovo nije ništa drugo nego događaji. Oni su način slanja podataka iz aplikacije u Redux trgovinu. Podaci dolaze iz interakcija korisnika ili API poziva ili slanja obrasca.

2. reduktori

To su samo čiste funkcije koje nakon poduzimanja trenutnog stanja aplikacije izvršavaju zadanu radnju i zatim vraćaju novo stanje. Ta stanja se kasnije pohranjuju kao objekti i oni također određuju kako se stanje odabrane aplikacije mijenja s odgovorom iz akcije poslane u trgovinu.

3. Spremite

Trgovina koja je jezgra dizajna drži stanje primjene. U bilo kojoj Redux aplikaciji može biti samo jedna trgovina. Možete pristupiti pohranjenom stanju i ažurirati njegovo stanje, a zatim registrirati ili odjaviti slušatelje dostupnim pomoćnim metodama.

Redux je odličan, ali postoje problemi sa korištenjem Reduxa:

  • Poteškoće u prebacivanju na rad sa reduktorima: - Da biste mogli raditi sa redukcijom, potrebno je brinuti se o funkcionalnim principima programiranja i uvijek vraćati novu vrijednost na temelju prethodnog stanja aplikacije. Ponekad bi to moglo biti jednostavno, kao što je rukovanje jednostavnim nizom ili objektima ili jednostavnim operacijama niza, ali kako se složenost zadatka povećava, bolja bi ideja vjerojatno bila korištenje Immutable.json iz slične biblioteke.
  • Ne ponavljajte sebe ili DRY princip: - Rad s Reduxom zahtijeva pridržavanje nekih konvencija, poput stvaranja vrsta akcija ili stvaranja akcija, a također i reduktora. Za sličnu logiku kao što su CRUD operacije, Redux kôd može izgledati vrlo slično. Dodavanje male funkcionalnosti u takvim će slučajevima trebati dodati puno redukcijske logike i slučajeva testova. Stoga bi bilo bolje razmisliti o ponovnom faktoringu ili slijeđenju DRY pravila.
  • Pazite na izvedbe: - Na kraju, ono što je stvarno važno jeste izvedba. Programeri obično vole imati izvor istine koji je ne samo jednostavan u održavanju, nego i uklanjanju pogrešaka i testiranju, pa stoga redux to ne odgovara. U Reduxu čak i mala promjena može potaknuti promjene u DOM strukturi.

Popis Redux alternativa

Ovo su glavne alternative za Redux koje su sljedeće:

1. MobX

Ovo je nova knjižnica koja pruža puno rješenja za gore navedene probleme. Djeluje na 3 točke i oni su stanje, izvedbe i akcije. S MobX-om, sinkronizacija između modela i korisničkog sučelja može se izvršiti automatski. Kod MobX-a se može koristiti OOP i neke metode izravno na stavkama modela. Normalizacija objekata također nije potrebna, ali u Redux trgovini je potrebna.

2. GraphQL

Relay & GraphQL stak je zapravo relativno star, ali nije toliko popularan kao Redux. Razvio ga je Facebook, a kada je došao opisan je kao okvir za izgradnju reakcija zasnovanih na podacima. Mnogo je jedinstvenih prednosti korištenja Relay s GraphQL-om. Najveći među njima je to što se iz perspektive frontenda ne treba prisjećati kako dohvatiti podatke da bi se dobio traženi odgovor.

3. Kombinezon

Ovo je rješenje obično za nekoga tko ne želi koristiti MobX, ali čisti Redux mu također nije privlačan. Kombinezon je okvir koji se temelji na Reduxu i tok čini automatiziranijim. Za one koji ne vole izradu aplikacije ispočetka (što znači dodavanje i konfiguriranje mnogih paketa), tada je Jumpsuit pogodan za njih. Daje pojednostavljeni sloj API-ja i za React i Redux.

4. Pomoćnici / generatori s konvencionalnim redux.js

Jedan od najvećih problema koji se može prepoznati aplikacijom Redux je taj da ima puno duplikacija koda, tj. Da ne slijedi princip DRY. Conventional-redux.js je takav pristup kako bi se pojednostavio vaš tijek rada.

Jumpsuit, Conventional-redux.js i mnogi drugi takvi alati usredotočeni su na poboljšanje Redux tijeka rada. To su preferirani izbor za one koji su upoznati s Reduxom i razumiju njegove nedostatke. To su oni ljudi koji su vjerojatno pripremili puno podataka ili stvari u državnoj logici i ne žele to prepisivati ​​ponovo i opet ili je postavilo više napora u učenju ovih vještina.

S druge strane, MobX i Relay & GraphQL su izvan Redux stog. MobX je vrlo jednostavan za naučiti. To se preporučuje ako netko želi pisati ispočetka vrlo brzo. Suprotno tome, GraphQLu je potrebno puno vremena da bi mogao izgraditi logiku protoka podataka za podupiranje. Ali jednom kad to učinite, izgradnja čeone implementacije postaje mnogo lakša.

Tabela usporedbe Redux alternativa

Značajke

Redux MobX GraphQL

jumpsuit

DRY principNeDaDaDa
KomplikacijavisoknizakSrednjiSrednji
Krivulja ucenjavisoknizakSrednjinizak
primjenaPogodno za jednostavnu primjenuPogodno za složenu primjenuPogodno za srednju primjenuPogodno za složenu primjenu

Preporučeni članci

Ovo je vodič o Redux alternativama. Ovdje smo raspravljali o četiri glavne Redux alternative sa njihovom tablicom za usporedbu. Možete pogledati i sljedeći članak da biste saznali više -

  1. Linux alternative
  2. Ubuntu alternative
  3. WordPress alternative
  4. Git alternative

Kategorija: