Nurk vs reageerimine. Või on uus Angular tõesti sitt?

Tere kõigile,

Tahan rääkida kõige populaarsematest JavaScripti raamistikest. Minu arvates on seal hunnik kasutuid võrdlusartikleid. Kuigi need sisaldavad tõeliselt huvitavaid teadmisi, pole sellest palju kasu.

Paljud inimesed väidavad, et te ei saa neid võrrelda, sest nurk on raamistik ja React on raamatukogu. Teisest küljest, enamik reageerivatest arendajatest (neid, keda tean) lisavad mõned teegid ja muudavad selle terviklikuks raamistikuks.

Oota, äkki veel midagi?

Mul on Angulari vastu väga uudishimulik ja valiksin selle väikeste ja keskmiste rakenduste jaoks, kuid tõeliselt suurte puhul kahtlemata häkkiksin ma Reactiga. Kuid seal on palju muid võimalusi. Ja mõnel neist läheb tõesti hästi, näiteks VueJS või EmberJs näevad välja väga head. Kuid ma arvan, et Angular and Reacti peamine konkurentsieelis on arendajate kogukond. Ainus liblikas, mis nende populaarsusega sammu pidada suudab, on jQuery, kuid ärgem mõelgem, et jQuery on nende kahe konkurent.

Alustame siis sellega! Kumb on parem, nurgeline või reageeriv?

Riigi juhtimine

Arvan, et suurim erinevus Nurga ja Reaketi vahel on osariigi juhtimine. Nurga all on komplekteeritud andmete sidumine, samas kui React ei saa tavaliselt pikka elu elada ilma Reduxita, mis pakub ühesuunalist andmevoogu ja töötab muutumatute andmetega. See toob palju arutelusid, kumb on parem? Andmete sidumine või muutumatu / ühesuunaline sidumine? See sõltub kindlasti paljudest aspektidest.

Kiusamine

Ma arvan, et see on tõesti seda väärt, et mainida, kui lihtne Angular mallidega töötab. Omades teie andmetele lihtsat kasutajaliidest, võimaldab Nurk teil soovitud tulemuse saada loogilisema lähenemisega kasutajaliidesele, mis nõuab vähem koodi ja tundub olevat ilmsem.

React nõuab andmete esitamisega tegelemiseks funktsioone. See tähendab, et enne andmete sisestamist DOM-i peate määratlema, kuidas teie andmeid kuvatakse.

Suurused ja jõudlus

Nagu me teame, on nurkfaili suurus palju suurem kui reageerib.

Nurk 2 + Rx = 766K
Reageeri 0,14,5 + Reageeri DOM + Redux = 139K

GZipitud versioonid

Nurk 2 + Rx = 143K
Reageeri 0,14,5 + reageerib DOM + Redux = 42K

Kuid kui hakkate Reactiga hõlmama palju kolmanda osapoole raamatukogusid, kipub ka kimbu suurus üsna kiiresti kasvama.

Nurga 2 jõudlus võib tekitada mõningaid probleeme, kui tegemist on tõesti suurte rakendustega, kuna see loob iga köite jaoks jälgija, et jälgida kõiki DOM-i muudatusi.

Teisest küljest on React ellu viinud virtuaalse DOM-i kontseptsiooni. Iga kord, kui alusandmed muutuvad rakenduses React, luuakse kasutajaliidese jaoks uus virtuaalse DOM-i esitus. Teisisõnu, iga kord, kui kasutaja suhtleb veebisaidiga, loob Reakt uue virtuaalse domeeni DOM. Sellepärast on Reakti jõudlus paljude andmete korral stabiilne, kuna jälgijaid pole.

CLI

Kaasaegsed raamistikud soovivad kasutada CLI-tööriista. Nurga CLI läheb üsna hästi ja säästab palju aega. Tänu Angular-cli-le ja selle disainile on Angular-i hõlpsasti mastaapsed. Teisest küljest on Reactil oma CLI, mis tutvustati hiljuti ja mida ei kasutata nii palju.

Silumine

Huvitav on see, kuidas igaüks neist silumisega hakkama saab. Nurk 2 ja selle käitusaegne silumine kipub andma teile vähem teavet kui React ja see kompileerib aja silumist.

TypeScript ja Flow

TypeScript ja Flow on sarnased tööriistad, mis keskenduvad samale probleemile: JavaScripti staatiliste tüüpide puudumine. Lõppkokkuvõttes on need mõlemad olemas, et aidata teil õiget koodi kirjutada. Nii TypeScript kui ka Flow pakuvad järkjärgulist staatilist tippimisvõimalust. Samuti kasutavad nad sarnast süntaksit tüübimärkuste ja deklaratsioonifailide jaoks.

Kui töötate nurga all, võiksite eelistada TypeScripti, kuna see on nurgakommuunis domineeriv keel. Teisalt, kui kasutate Reaktorit, võiksite eelistada voolu, kuna see integreerub hõlpsalt Paabeli ja muu infrastruktuuriga, mis teil tõenäoliselt juba olemas on.

Paljud arendajad (eriti React) kardavad TypeScripti. Midagi pole karta. See on lihtsalt ES6 + tüüp. ES6 on kehtiv TypeScripti kood. Java ja .NET on seda tugevalt mõjutanud, nii et kui arendajal on taust ühes neist keeltest, on neid tõenäoliselt TypeScripti lihtsam õppida kui tavalist JavaScripti.

Õppimisprotsess

Nurgas on rohkem asju õppida kui Reaktis. Teisest küljest peate palju õppima React parimate tavade kohta, kuna on palju viise, kuidas saate sama asja teha või valesti minna.

Nurgeline maine ja millist nurgelisi versioone peaksite kasutama?

Ma tean, et Nurge koheldakse JavaScripti kogukonnast ebaõiglaselt. Paljud inimesed väljendavad sellega rahulolematust. Tegelikult on sellel mõned põhjused, kuid ma arvan, et Nurga 4 abil lahendati palju probleeme. Esialgsest AngularJS-ist uuele Angularile toimus tohutu nihe. Võrreldes nurgaga 1 on nurga 2.0 jõudlus ja disain märkimisväärselt paranenud (minu arvates peaksite nurk 1 kasutama ainult siis, kui olete selle ekspert ja teil on ranged tähtajad). Ma arvan, et see on väga produktiivne raamistik, mis võiks olla palju edukam, kui poleks nii palju versioone, nii palju muudatusi. Mul oli võimalus vahetada Angulari versioon väljalaskekandidaadilt 5 versioonile 6 ja seejärel väljalaskeversioonile. See tähendas peaaegu kogu rakenduse ümberkirjutamist. Kuid nüüd näib Angular 4 tõesti stabiilne ja usaldusväärne.

Järeldus

Nii et uus Angular on tegelikult sitt?

Ei, see pole nii.

Siin on minu nimekiri nurga all reageerimise tavadest.

Kui teile meeldivad mallid, kasutage nurka.
Suurte meeskondade ja projektide jaoks on React parem lahendus, kuna see võimaldab väiksema koodi ja kiirema prototüüpimisega komponente uuesti kasutada.
Kui teile ei meeldi seadistamiseks palju aega kulutada, kasutage nuppu Nurk.
JS-i asjatundjate ja entusiastide jaoks on Reacti lihtsam juhtida.
Parem, kui proovite neid mõlemaid :)