Kulma vs reagoi. Vai onko uusi kulma todella paska?

Hei kaikki,

Haluan puhua suosituimmista JavaScript-puitteista. Mielestäni siellä on joukko turhia vertailuartikkeleita. Vaikka ne sisältävät todella mielenkiintoisia oivalluksia, siitä ei ole paljon hyötyä.

Monet sanovat, että et voi verrata niitä, koska Angular on kehys ja React on kirjasto. Toisaalta suurin osa reagoivista kehittäjistä (tiedän ne) lisäävät kirjastoja ja muuntaa ne kokonaiseksi kehykseksi.

Odota, ehkä jotain muuta?

Olen todella kiinnostunut Angularista ja valitsisin sen pienille ja keskisuurille sovelluksille, mutta todella suurille, epäilemättä haluaisin hakata Reaktin kanssa. Mutta siellä on paljon muita vaihtoehtoja. Ja joillakin heistä menee todella hyvin, esimerkiksi VueJS tai EmberJs näyttävät todella hyvältä. Mutta mielestäni Angular and Reactin tärkein kilpailuetu on kehittäjäyhteisö. Ainoa lib, joka voi pysyä suosionsa alaisena, on jQuery, mutta älkäämme pitäkö jQueryä näiden kahden kilpailijana.

Joten aloitetaan se. Kumpi on parempi, kulma vai reagoi?

Valtion hallinto

Mielestäni suurin ero kulmikkaan ja Reaktin välillä on valtionhallinta. Kulman mukana tulee tiedonsitomispaketti, kun taas React ei yleensä voi elää pitkää aikaa ilman Reduxia, joka tarjoaa yksisuuntaisen tiedonkulun ja työskentelee muuttumattoman tiedon kanssa. Tämä herättää monia keskusteluja, mikä on parempi? Tiedon sitominen vai muuttumaton / yksisuuntainen sitominen? Se riippuu varmasti monista näkökohdista.

templating

Mielestäni on todella sen arvoista mainita, kuinka helppo Angular toimii malleilla. Koska tietosi on yksinkertainen käyttöliittymä, Angular antaa sinulle halutun tuloksen loogisemmalla lähestymistavalla käyttöliittymään, joka vaatii vähemmän koodia ja näyttää olevan selvempi.

React vaatii toimintoja tietojen esityksen käsittelemiseksi. Se tarkoittaa, että sinun on määritettävä tapa, jolla tietosi näytetään, ennen kuin ne lisätään DOM: iin.

Koot ja suorituskyky

Kuten tiedämme, kulmaisen tiedoston koko on paljon suurempi kuin reagoi.

Kulma 2 + Rx = 766K
Reagoi 0.14.5 + Reagoi DOM + Redux = 139K

GZipatut versiot

Kulma 2 + Rx = 143K
Reagoi 0.14.5 + Reagoi DOM + Redux = 42K

Mutta kun aloitat sisällyttämään paljon kolmansien osapuolien kirjastoja Reaktin kanssa, myös kimpun koosta on taipumus kasvaa melko nopeasti.

Kulma 2 -suorituskyky voi aiheuttaa ongelmia todella suurissa sovelluksissa, koska se luo tarkkailijan jokaiselle sidokselle kaikkien DOM-muutosten seuraamiseksi.

Toisaalta React on tuonut elämään virtuaalisen DOM-konseptin. Aina kun perustiedot muuttuvat React-sovelluksessa, luodaan uusi käyttöliittymän Virtual DOM -esitys. Toisin sanoen joka kerta kun käyttäjä on vuorovaikutuksessa verkkosivuston kanssa, React luo uuden virtuaalisen DOM: n. Siksi React-suorituskyky on vakaa, kun kyse on paljon datasta, koska tarkkailijoita ei ole.

CLI

Modernissa kehyksessä on suuntaus saada CLI-työkalu. Anglin CLI menee melko hyvin ja säästää paljon aikaa. Angular-clin ja sen suunnittelun ansiosta Angular on helppo skaalata. Toisaalta Reaktilla on oma CLI, joka otettiin käyttöön äskettäin, eikä sitä käytetä niin paljon.

virheenkorjaus

On mielenkiintoista, kuinka kukin heistä käsittelee virheenkorjausta. Kulma 2 ja sen suorittama virheenkorjaus yleensä antaa sinulle vähemmän tietoa kuin React ja se kokoaa aikavirheen.

TypeScript ja Flow

TypeScript ja Flow ovat samanlaisia ​​työkaluja, jotka keskittyvät samaan ongelmaan: JavaScriptin puuttuessa staattisissa tyypeissä. Viime kädessä ne molemmat ovat olemassa, jotta voit kirjoittaa oikean koodin. Sekä TypeScript että Flow tarjoavat asteittaisen staattisen kirjoitusmahdollisuuden. He käyttävät myös samanlaista syntaksia tyyppimerkinnöissä ja ilmoitustiedostoissa.

Jos työskentelet kulmikkaan kanssa, saatat suosia TypeScriptiä, koska se on hallitseva kieli kulmayhteisössä. Toisaalta, jos käytät Reaktia, saatat suosia Flowa, koska se integroituu helposti Babeliin ja muuhun infrastruktuuriin, joka sinulla todennäköisesti on jo käytössä.

Monet kehittäjät (etenkin React) pelkäävät TypeScriptiä. Ei ole mitään pelättävää. Se on vain ES6 + -tyyppejä. ES6 on kelvollinen TypeScript-koodi. Java ja .NET ovat vaikuttaneet siihen voimakkaasti, joten jos kehittäjällä on tausta jollakin näistä kielistä, he ovat todennäköisesti TypeScriptin helpompi oppia kuin pelkkä JavaScripti.

Oppimisprosessi

Kulmassa on enemmän opittavaa kuin Reaktissa. Toisaalta, sinun on opittava paljon Reaktin parhaista käytännöistä, koska on monia tapoja, joilla voit tehdä saman tai mennä pieleen.

Kulmainen maine ja mitä kulmaversiota sinun tulisi käyttää?

Tiedän, että Angularia kohdellaan kohtuuttomasti JavaScript-yhteisöstä. Monet ihmiset ilmaisevat tyytymättömyytensä siihen. Itse asiassa siihen on joitain syitä, mutta luulen, että Angular 4 ratkaisi paljon ongelmia. Alkuperäisestä AngularJS: stä tapahtui valtava siirtyminen uuteen. Suorituskykyä ja suunnittelua parannettiin huomattavasti Angular 2.0: ssa verrattuna kulmaan 1 (mielestäni sinun tulisi käyttää kulmaa 1 vain, jos olet sen asiantuntija ja sinulla on tiukat määräajat). Mielestäni se on erittäin tuottava kehys, joka voisi olla paljon menestyvämpi, jos versioita ei olisi niin paljon, niin paljon muutoksia. Minulla oli mahdollisuus vaihtaa Angularin versio versiosta 5 ehdolle 6 ja sitten versiona. Se tarkoitti melkein koko sovelluksen uudelleenkirjoittamista. Mutta nyt, Angular 4 vaikuttaa todella vakaalta ja luotettavalta.

johtopäätös

Joten onko uusi kulma todella paska?

Ei, se ei ole.

Tässä on luettelo kulmareaktion käyttötavoista.

Jos pidät malleista, käytä Kulma-painiketta.
Suurille ryhmille ja projekteille React on parempi ratkaisu, koska sen avulla voit käyttää komponentteja uudelleen vähemmän koodilla ja nopeammalla prototyyppien muodostamisella.
Jos et halua viettää paljon aikaa perustamiseen, käytä Kulma-painiketta.
JS: n asiantuntijoille ja harrastajille React on helpompi hallita.
Parempi, jos kokeilet molempia :)