Angular vs React. Oder ist der neue Angular wirklich Scheiße?

Hallo zusammen,

Ich möchte über die beliebtesten JavaScript-Frameworks sprechen. Meiner Meinung nach gibt es eine Reihe nutzloser Vergleichsartikel. Obwohl sie wirklich interessante Einsichten enthalten, wird sie nicht viel genutzt.

Viele Leute sagen, dass Sie sie nicht vergleichen können, da Angular ein Framework und React eine Bibliothek ist. Auf der anderen Seite fügen die meisten reaktiven Entwickler (die mir bekannten) einige Bibliotheken hinzu und machen daraus ein vollständiges Framework.

Warten Sie, vielleicht noch etwas?

Ich bin sehr neugierig auf Angular und würde es für kleine und mittlere Anwendungen wählen, aber für wirklich große würde ich zweifellos mit React hacken. Aber da gibt es noch viele andere Möglichkeiten. Und einige von ihnen machen es wirklich gut, zum Beispiel sehen VueJS oder EmberJs wirklich gut aus. Aber ich denke, der Hauptwettbewerbsvorteil für Angular and React ist die Entwicklergemeinschaft. Die einzige Bibliothek, die mit ihrer Popularität mithalten kann, ist jQuery. Betrachten wir jQuery jedoch nicht als Konkurrent dieser beiden.

Also fangen wir an. Was ist besser, Angular oder Reagieren?

Staatsverwaltung

Ich denke, der größte Unterschied zwischen Angular und React ist das State Management. Angular wird mit gebündelter Datenbindung geliefert, wohingegen React ohne Redux, das einen unidirektionalen Datenfluss bietet und mit unveränderlichen Daten arbeitet, normalerweise keine lange Lebensdauer hat. Das bringt zu vielen Diskussionen, was ist besser? Datenbindung oder unveränderliche / unidirektionale Bindung? Es hängt sicherlich von vielen Aspekten ab.

Vorlage

Ich denke, es lohnt sich wirklich zu erwähnen, wie einfach Angular mit Vorlagen funktioniert. Angular verfügt über eine einfache Benutzeroberfläche für Ihre Daten und ermöglicht es Ihnen, das gewünschte Ergebnis mit einem logischeren Ansatz für die Benutzeroberfläche zu erzielen, der weniger Code erfordert und offensichtlicher zu sein scheint.

React benötigt Funktionen zur Datenrepräsentation. Dies bedeutet, dass Sie festlegen müssen, wie Ihre Daten angezeigt werden, bevor sie in das DOM eingefügt werden.

Größen und Leistung

Wie wir wissen, ist die Dateigröße von Angular viel größer als die von Reacts.

Winkel 2 + Rx = 766K
Reagiere 0.14.5 + Reagiere DOM + Redux = 139K

GZipped-Versionen

Winkel 2 + Rx = 143K
Reagiere 0.14.5 + Reagiere DOM + Redux = 42K

Wenn Sie jedoch damit beginnen, viele Bibliotheken von Drittanbietern in React einzubeziehen, nimmt die Bundle-Größe in der Regel relativ schnell zu.

Die Leistung von Angular 2 kann bei sehr großen Anwendungen zu Problemen führen, da ein Watcher für jede Bindung erstellt wird, um alle Änderungen in DOM nachzuverfolgen.

Andererseits hat React das virtuelle DOM-Konzept ins Leben gerufen. Jedes Mal, wenn sich die zugrunde liegenden Daten in einer React-App ändern, wird eine neue virtuelle DOM-Darstellung der Benutzeroberfläche erstellt. Mit anderen Worten, jedes Mal, wenn ein Benutzer mit der Website interagiert, erstellt React ein neues virtuelles DOM. Aus diesem Grund ist die React-Leistung bei vielen Daten stabil, da es keine Beobachter gibt.

CLI

Moderne Frameworks verfügen tendenziell über ein CLI-Tool. Angulars CLI funktioniert recht gut und spart viel Zeit. Dank Angular-cli und seinem Design ist Angular einfach zu skalieren. Andererseits verfügt React über eine eigene CLI, die kürzlich eingeführt wurde und nicht so häufig verwendet wird.

Debuggen

Es ist interessant, wie jeder von ihnen das Debuggen handhabt. Angular 2 und das Laufzeit-Debugging liefern in der Regel weniger Informationen als React und das Debuggen zur Kompilierungszeit.

TypeScript und Flow

TypeScript und Flow sind ähnliche Tools, die sich auf dasselbe Problem konzentrieren: das Fehlen statischer Typen in JavaScript. Letztendlich sind beide vorhanden, damit Sie den richtigen Code schreiben können. Sowohl TypeScript als auch Flow bieten Funktionen für die schrittweise statische Eingabe. Sie verwenden auch eine ähnliche Syntax für Typanmerkungen und Deklarationsdateien.

Wenn Sie mit Angular arbeiten, bevorzugen Sie möglicherweise TypeScript, da es die dominierende Sprache in der Angular-Community ist. Wenn Sie dagegen React verwenden, bevorzugen Sie möglicherweise Flow, da es sich problemlos in Babel und andere Infrastrukturen integrieren lässt, über die Sie wahrscheinlich bereits verfügen.

Viele Entwickler (insbesondere React) haben Angst vor TypeScript. Es gibt nichts zu befürchten. Es sind nur ES6 + -Typen. ES6 ist ein gültiger TypeScript-Code. Es wurde stark von Java und .NET beeinflusst. Wenn ein Entwickler über einen Hintergrund in einer dieser Sprachen verfügt, ist es wahrscheinlich, dass TypeScript leichter zu erlernen ist als einfaches JavaScript.

Lernprozess

In Angular gibt es mehr zu lernen als in React. Auf der anderen Seite müssen Sie viel über die bewährten Methoden von React lernen, da es viele Möglichkeiten gibt, dasselbe zu tun oder Fehler zu machen.

Angular-Reputation und welche Angular-Version sollten Sie verwenden?

Ich weiß, dass Angular von der JavaScript-Community unfair behandelt wird. Viele Menschen sind damit unzufrieden. Eigentlich gibt es einige Gründe dafür, aber ich denke, Angular 4 hat viele Probleme gelöst. Es gab eine immense Verschiebung vom ursprünglichen AngularJS zum neuen Angular. Leistung und Design wurden in Angular 2.0 im Vergleich zu Angular 1 erheblich verbessert (meiner Meinung nach sollten Sie Angular 1 nur verwenden, wenn Sie ein Experte in diesem Bereich sind und hohe Fristen haben). Ich denke, es ist ein sehr produktives Framework, das viel erfolgreicher sein könnte, wenn es nicht so viele Versionen und so viele Änderungen gäbe. Ich hatte die Möglichkeit, Angulars Version von Release-Kandidat 5 auf 6 und dann auf die Release-Version zu ändern. Das bedeutete fast, die gesamten Anwendungen neu zu schreiben. Aber jetzt scheint Angular 4 wirklich stabil und zuverlässig zu sein.

Fazit

Also ist der neue Angular wirklich Scheiße?

Nein, ist es nicht.

Hier ist meine Liste der Angular-React-Verwendungen.

Wenn Sie Vorlagen mögen, verwenden Sie Angular.
Für große Teams und Projekte ist React eine bessere Lösung, da Sie Komponenten mit weniger Code und schnellerem Prototyping wiederverwenden können.
Wenn Sie nicht viel Zeit mit dem Einrichten verbringen möchten, verwenden Sie Angular.
Für JS-Experten und Enthusiasten wird React leichter zu meistern sein.
Besser wenn du beide probierst :)