Angular vs Reaccionar. O és que la nova Angular és una merda realment?

Hola a tots,

Vull parlar dels marcs de JavaScript més populars. Segons la meva opinió, hi ha molts articles inútils de comparació. Tot i que contenen visions realment interessants, no s’utilitza gaire.

Molta gent diu que no els podeu comparar perquè Angular és un marc i React és una biblioteca. A l’altra banda, la majoria de desenvolupadors de reacció (que conec) afegeixen algunes biblioteques i el converteixen en un marc complet.

Espera, potser alguna cosa més?

Realment tinc curiositat per Angular i la triaria per a aplicacions petites i mitjanes, però, per a grans, sens dubte, piratejaria amb React. Però hi ha moltes altres opcions. I alguns estan fent molt bons, per exemple VueJS o EmberJs semblen molt bons. Però crec que el principal avantatge competitiu per a Angular i React és la comunitat de desenvolupadors. L’únic lib que pot mantenir-se al dia amb la seva popularitat és jQuery, però no considerem jQuery com a competidor d’aquests dos.

Així, comencem-ho. Quin és millor, angular o reaccionar?

Gestió de l’estat

Crec que la major diferència entre Angular i React és la gestió de l’estat. Angular inclou un enllaç de dades inclòs, mentre que React no pot viure una llarga vida sense Redux, que proporciona un flux de dades unidireccional i treballa amb dades immutables. Això comporta moltes discussions, que és millor? Enllaç de dades o enllaç immutable / unidireccional? Segurament depèn de molts aspectes.

Plantilla

Crec que val la pena esmentar el fàcil que Angular funciona amb les plantilles. Tenint una interfície d'interès senzilla per a les vostres dades, Angular us permet obtenir el resultat desitjat amb l'enfocament més lògic de la interfície d'usuari que requereix menys codi i que sembla ser més evident.

React requereix funcions per gestionar la representació de dades. Vol dir que heu de definir la manera com es mostren les vostres dades abans que s’insereixin al DOM.

Mides i rendiment

Com sabem, la mida del fitxer angular és molt més gran que Reacts.

Angular 2 + Rx = 766K
Reacciona 0,14,5 + Reacciona DOM + Redux = 139K

Versions GZipped

Angular 2 + Rx = 143K
Reacciona 0,14,5 + Reacciona DOM + Redux = 42K

Però quan comenceu a incloure moltes biblioteques de tercers amb React, la mida del paquet també acostuma a créixer més aviat.

El rendiment Angular 2 pot causar problemes quan es tracta d'aplicacions realment grans, ja que crea un vigilant per a cada enquadernació per tal de fer el seguiment de tots els canvis en DOM.

D'altra banda, React ha donat vida al concepte de DOM virtual. Cada vegada que canvia una informació subjacent en una aplicació React, es crea una nova representació de DOM virtual de la interfície d'usuari. És a dir, cada cop que un usuari interactua amb el lloc web React crea un nou DOM virtual. És per això que el rendiment de reacció és estable quan es tracta de moltes dades, ja que no hi ha observadors.

CLI

Els marcs moderns tendeixen a tenir una eina CLI. El CLI d’Angular està fent molt bé i estalvia molt temps. Angular-cli i el seu disseny, Angular és fàcil d’escalar. D'altra banda, React té el seu propi CLI, que es va introduir recentment, no s'utilitza tant.

Depuració

És interessant com cadascun d’ells gestiona la depuració. L'angular 2 i la depuració en temps d'execució solen proporcionar-vos menys informació que Reactiu i compileu la depuració de temps.

TypeScript i Flux

TypeScript i Flow són eines similars centrades en el mateix problema: la falta de tipus estàtic de JavaScript. En última instància, tots dos existeixen per ajudar-vos a escriure codi correcte. Tant TypeScript com Flow ofereixen capacitats d'escriptura estàtica gradual. També utilitzen una sintaxi similar per a anotacions de tipus i fitxers de declaració.

Si treballeu amb Angular, potser preferiu TypeScript perquè és el llenguatge dominant utilitzat a la comunitat angular. Si utilitzeu React, d’altra banda, potser preferiu Flow perquè s’integra fàcilment amb Babel i altra infraestructura que probablement ja teniu al vostre lloc.

Molts desenvolupadors (especialment React) tenen por de TypeScript. No hi ha res de què tenir por. Es tracta només dels tipus ES6 +. ES6 és un codi TypeScript vàlid. Ha estat molt influenciada per Java i .NET, per la qual cosa, si un desenvolupador té un fons en un d'aquests idiomes, és probable que trobareu TypeScript més fàcil d'aprendre que el JavaScript senzill.

Procés d’aprenentatge

A Angular hi ha més coses que aprendre que a React. D'altra banda, heu d'aprendre molt sobre les bones pràctiques de reaccionar, ja que hi ha moltes maneres de fer el mateix o fer-ho malament.

Reputació angular i quina versió angular ha d’utilitzar?

Sé que Angular és tractat injustament des de la comunitat JavaScript. Molta gent manifesta insatisfacció per això. De fet, hi ha algunes raons per això, però crec que Angular 4 va resoldre molts problemes. Es va produir un canvi immens de l'angularJS original al nou Angular. El rendiment i el disseny es van millorar molt a Angular 2.0 en comparació amb Angular 1 (al meu entendre, haureu d’utilitzar Angular 1 només si sou experts en això i teniu terminis molt forts). Crec que és un marc molt productiu que podria tenir molt més èxit si no hi hagués tantes versions, tants canvis. He tingut l'oportunitat de canviar la versió d'Angular del candidat al llançament del número 5 al 6 i, després, a la versió del llançament. Això gairebé significava reescriure totes les aplicacions. Però ara, Angular 4 sembla realment estable i fiable.

Conclusió

Llavors, la nova Angular és realment una merda?

No, no ho és.

Aquí teniu la meva llista d’usos angulars.

Si us agraden les plantilles, feu servir Angular.
Per a grans equips i projectes, React serà una millor solució, ja que permet reutilitzar components amb menys codi i prototipat més ràpid.
Si no us agrada passar molt temps a configurar-lo, utilitzeu Angular.
Pels experts i entusiastes de JS, React serà més fàcil de dominar.
Millor si els proveu tots dos :)