JavaScript Angular vs React

Tr3x

Lieutenant
Registriert
Feb. 2007
Beiträge
638
Hi,

ich versuche mich gerade etwas in JavaScript Frameworks bzw libaries einzuarbeiten um später mal ein schönes Front-End zu bauen. Hier bin ich bei Angular und React gelandet. Jetzt ist meine Entscheidung sehr schwierig für welches der beiden ich mich entscheiden soll.
Oft höre ich das Angular nützliche tool mitsich bringt wie zum Beispiel caching. Von der anderen Fraktion natürlich das dies ohne Probleme auch geht.

Gibt es Experten die aus dem Nähkästchen plaudern können. Stimmt das React momentan noch nicht so "bekannt" ist wie Angular aber für die Zukunft eine doch gute Perspektive zu Angular?
 
Die sind beide gleich bekannt und beliebt. Reine Geschmackssache.
 
Es gibt viele Kriterien anhand derer man ein solches Framework bewerten kann, Bekanntheitsgrad ist weniger wichtig, wenn die Community und Dokumentation stimmt, was bei React der Fall ist. Es kommt auch auf das Niveau des Programmierers an, fortgeschrittene Anfänger dürften sich mit Vue leichter tun. Wer eine skalierbare Anwendung schreiben will, der ist wiederum bei Angular besser aufgehoben. Vue würde ich mir an deiner Stelle auf jeden Fall mal ansehen.
 
Vue ist noch mal eine andere Geschichte. Aber React und Angular sind sich relativ ähnlich.

Der bedeutendste Unterschied (wie ich finde):
- Angular ist ein rundum-sorglos-Paket und es werden Addons für Router, HTTP, Formulare, Animationen, etc. pp. mitgeliefert, aber dafür es wesentlich weniger Freiheiten und Entscheidungsmöglichkeiten
- React ist im Grunde nur die Bibliothek für Komponenten und man muss sich seine Lieblings Addons im Netz zusammen suchen

Klar sind die Template Sprache und die Methoden des Frameworks Unterschiedlich, aber man kann mit beiden dasselbe erreichen. Der Aufwand für größere Applikationen ist auch in etwa derselbe.
 
React ist erstmal nur für die Ansicht/View deiner Applikation zuständig. Erst durch hinzufügen weiterer Komponenten wird die App vollständig. Der Vorteil ist, dass du viel mehr Freiheiten hast. Du kannst z.B. eine App mit Angular programmieren und die Oberfläche mit React anzeigen lassen. Also sogar beide kombinieren. Freiheiten müssen am Anfang aber nicht umbedingt was Gutes sein.
Setz doch jeweils eine einfache App in Agular und eine mit React um, dann weißt du schnell was dir mehr/besser liegt.

add Angular: Es gibt bereits drei Versionen von Angular welche sich teilweise erheblich unterscheiden. Wenn du Infos zusammen suchst, immer drauf achten wie aktuell diese sind. Angular 4 ist die neuste Version.
https://www.google.com/search?q=angular+4+vs+react
 
angular ist halt ein fettes framework.. was alles liefert was du brauchst.. dir auch sehr viel vorgibt.. wenn du eine spa in einem großem team baust.. mag das wohl sinnig sein.. angular nutzt typescript..

react ist nur eine library die dir nichts vorgibt an sicht.. hier ist der nachteil.. dass dein template code in jsx geschriben wird.. muss immer irgendwie gebuildet werden..

würde heutzutage eher auf vue schielen.. ist das beste aus beiden irgendwie.. etwas näher an angular.. aber man kann auch jsx schreiben wenn man will..

es gibt dir ansich auch nicht vor.. kannst es auch wie jquery ohne irgendwas zu kompilieren verwenden.. oder du nimmst das für dich passende template mit router.. store.. webpack etc..
 
Vielen Dank für die zahlreichen Antworten.

Bezüglich Skalierung finde ich das ein guter Punkte. Was ich bisher aufgeschnappt habe ist das mit Redux das Problem auf React Seite umgangen wird und auch da Angular nichts nachsteht.

Wie sieht es da eigentlich mit der Einbettung von weiteren Bibliotheken aus? Wird hier ein Bundle einfach eingebunden oder nur der code, das ist mir leider noch nicht ganz klar.
 
Skalierung wird immer wieder groß angepriesen. Aber im Endeffekt ist das nur relevant wenn man eine sehr populäre Webseite und/oder extrem(!) viele Daten darstellen und/oder berechnen will. Aber auch hier sind Angular und React auf einem Level. Der Entwickler muss halt wissen WIE.

Dasselbe gilt für's Redux Pattern. Für kleine Anwendungen und Webseiten nicht wirklich nötig, meiner Meinung nach. Aber auch das ist im Grunde nur ein Pattern und kann in jeder Sprache und mit jedem Framework relativ einfach nachgebaut werden, wenn es keine vorgefertigte Lösung gibt (die es für Angular und React natürlich gibt)

Was für "andere Bibliotheken"?

Im Normalfall packt man ja eh noch Bootstrap oder Angular Material oder so dazu für's Layout. Dann braucht man sich auch um Date/Time-Picker keine Gedanken mehr zu machen.

Alles was im Hintergrund läuft (z.B. Websockets / STOMP) geht ohne Probleme und auch Chart Libraries laufen. Für die meisten bekannten JS Bibliotheken gibt es Angular-Plugins (z.B. d3 oder chart js) und bei React ist es auch nicht großartig anders.
 
Hab mich vertan, Angular 5 ist schon heraußen.

Andere Bibliotheken installierst du mit npm oder manuell und importierst sie dann in dein Code. Webpack bzw. Angular CLI machen den Rest automatisch.

Schau dir paar Tutorials an, oder buch online Kurse auf Udemy z.B.
 
Gott, was ist das wieder für eine Frage.

Zeigt, dass der TE nicht mal 5 Minuten Google bemühen kann / will:

http://lmgtfy.com/?q=angular+vs+react

@Sparta8:
Angular benutzt ab Version 2 Semantic Versioning: https://angularjs.blogspot.de/2016/10/versioning-and-releasing-angular.html

Angular 2 und Angular 5 unterscheiden sich aus Anwendungsentwicklersicht nur marginal, ein Update ist innerhalb weniger Stunden (eventuell auch Minuten) durchführbar.

Und TypeScript ist optional, heißt: Man kann auch mit Dart oder "nativem" ES5/ES2015 Angular-Applikationen entwickeln, wobei die Doku meines Wissens für TypeScript die beste ist und die meisten eh auch TypeScript verwenden.

kling1 schrieb:
angular ist halt ein fettes framework.. was alles liefert was du brauchst.. dir auch sehr viel vorgibt.. wenn du eine spa in einem großem team baust.. mag das wohl sinnig sein

Dem stimme ich voll und ganz zu: Ich würde per se davon abraten, Angular zu verwenden, wenn es um eine "klassische" Webapplikation geht. Man muss nicht auf jeden "Hipster-Train" aufspringen.

Kleine Randinfo: Wir nutzen auf der Arbeit Angular (5), ich sitze da also fast jeden Tag dran.
 
CryNickSystems schrieb:
Dem stimme ich voll und ganz zu: Ich würde per se davon abraten, Angular zu verwenden, wenn es um eine "klassische" Webapplikation geht. Man muss nicht auf jeden "Hipster-Train" aufspringen.

Was meinst du damit genau? Was definierst du als "klassische" WebApp und warum dann kein Angular? Was meinst du mit "Hipster-Train"?
Meine fragen sind nicht sarkastisch gemeint.
 
@Tr3x

Die frage ist wirklich was du machen willst. Möchtest du eine einfache Webseite machen un nur ein paar Sachen zu präsentieren? Dann würde ich hier ohne irgendwelche Framworks arbeiten. Maximal noch mit React. Der große Unterschied ist, dass React kleiner ist als Angular und auch etwas schneller. Ebenfalls modelliert React nur den View und nicht mehr. Redux kann man verwenden, ich persönlich bin aber eher ein Freund von MobX, das verwende ich lieber.

Du solltest also ersteinmal genau definieren, wass du möchtest. Dann fällt dir die Auswahl einfacher. Mir persönlich ist es wichtig, dass die meisten Tools aus einer Hand kommen. Daher habe ich Angular verwendet.

CryNickSystems schrieb:
Ich würde per se davon abraten, Angular zu verwenden, wenn es um eine "klassische" Webapplikation geht.

Sehe ich auch so. Für kleine WebSeite reicht nach wie vor ein wenig CSS oder Javascript ohne Framworks völlig aus (für moderne Browser). Leider hat sich durchgesetzt bei kleinen Problemen immer direkt ein JS-Framwork zu bemühen ...
 
Hi,

also zum Üben und reinkommen sollen es erstmal einfache Seiten sein. Möchte es aber später ausdehnen was dann doch ein recht großes Backend (Java) handeln soll.
Aktuell arbeiten wir im Büro mit Java Backend mit JSF. Früher oder später möchten wir JSF "kicken". Besonders da wir für viele Kunden unterschiedliche Frontends anbieten würden wir das zukünftig vielleicht über ein JS Framework handeln. Da wir nebenbei auch Webseiten allgemein erstellen, wo sich React/Angular schon eingefunden hat, fand ich die Idee das einfach für das Backend zu übernehmen gut. Ich denke damit wäre auch die Trennung vom Backend stärker als wie bisher mit JSF. Ist zwar schön, aber schön sieht es nicht wirklich für Kunden aus.

Kurzrum, schöne unabhängige GUI deren "Prozessauslastung beim Kunden liegt" (weniger serverseitig), die sich mehr und mehr vom Backend trennt und nur noch über Schnittstellen aggiert. Eine super "website" soll es nicht werden, höchstens zum zu Üben und ins das Thema reinzukommen.

Ich hoffe das meine grobe Richtung halbwegs rüberkam.
 
Zurück
Oben