2015-01-26 7 views
34

Ich entscheide, welches JavaScript-Framework für meine neue Webanwendung verwendet werden soll. Ich wollte Angular verwenden, hörte aber kürzlich von React. Das Problem ist - ich habe keinen wirklich guten Vergleich zwischen den beiden gefunden. Die meisten Artikel, die einen Vergleich durchführen, sind "pro-react" und sind keine große Hilfe beim Vergleich, sondern zeigen nur, warum die Reaktion besser ist. z.B.AngularJS vs ReactJS

https://www.codementor.io/reactjs/tutorial/react-vs-angularjs http://www.quora.com/Pete-Hunt/Posts/Facebooks-React-vs-AngularJS-A-Closer-Look

Jeder wirkliche Erfahrung oder ein Vergleich, der die Vor- und Nachteile der beiden Staaten? Dank für Ihre Eingabe

UPDATE - Vielleicht ein kleines Beispiel dazu beitragen würde, wie man das gleiche in beiden Frameworks zu tun und die Vor/Nachteil

Beispiel vergleichen: Ich habe eine Liste von Unternehmen in einer Tabelle . Jede Zeile ist 1 Firma, jede Spalte ist eine Information über die Firma (Name, Adresse, Anzahl der Angestellten ...). Es gibt viele Einträge, und ich muss etwas paging und sortieren (serverseitig)

+0

Angular vs. Reaktion: Was ist besser für Web-Entwicklung ist? - https://www.toptal.com/front-end/angular-vs-react-for-web-development?utm_campaign=blog_post_angular_vs_react_for_web_development&utm_medium=email&utm_source=blog_subscribers#remote-developer-job –

Antwort

35

I haben eine angemessene Erfahrung mit React und im Grunde keine mit Angular. Was ich über Angular sagen will, ist von Dingen, die ich von anderen Leuten lese und höre.

Reagieren

Pros

  1. Einfache
  2. Isolierte Komponenten sind leichter zu lernen, zu pflegen
  3. Die „Immer wieder machen“ Art und Weise Reagieren von schön ist es zu halten leichte verstehen, wenn die Dinge komplex werden
  4. Flux ist eine wirklich gute Alternative zum MVC-Muster. Der One-Way-Datenfluss hilft bei der Wartbarkeit und hält Daten und DOM-Elemente konsistent. In Kombination mit Immutable.JS Datenstrukturen, es ist die Kirsche auf der Torte :)

Cons

  1. Ist mit DOM-Manipulation Libs nicht schön spielen (zB jQuery)
  2. Es verändert wirklich die Art und Weise, wie Sie Dinge tun, besonders wenn Sie Flux verwenden, was gut ist, aber es erfordert ein wenig gewöhnungsbedürftig.
  3. Ich habe einige Fälle gefunden, in denen das erneute Rendering jedes Mal die Anwendung verlangsamt, wenn die Komponenten ein großes Dataset mit der Rendermethode verarbeiten. Die Optimierung der Leistung in diesen Fällen kann ein wenig schwierig werden.

Angular

Pros

  1. Gute Dokumentation
  2. Mitglieder der Gemeinschaft nützlich sind (es ist einfach, gute Antworten hier auf SO zu finden).
  3. Zwei-Wege-Datenbindung macht einige Dinge einfach

Cons

  1. Leistungsprobleme zu implementieren: Zweiwege-Daten verbindlich machen es für Veränderungen in Ihrem Datenmodell zu überprüfen hat . Es muss auch dein HTML analysieren, um es magisch zu machen. Dies verlangsamt die Dinge und, wenn die App auf einem mobilen Gerät läuft, entleert es den Akku schneller
  2. Logik in HTML und JS verbreitet: Code schwerer zu verstehen, zu warten und zu debuggen.
  3. v2 kommen einige Probleme zu beheben, aber machen alle v1 Code veraltet
+7

Gute Antwort, ich habe beide verwendet Reagieren und Angular für etwa ein Jahr, eine Sache, die ich hinzufügen möchte ist, dass ** ich ** würde nie Angular über React wählen, aber wenn Sie ein paar zufällige Entwickler ohne React Erfahrung und müssen sofort anfangen zu arbeiten, Reagieren dauert zu lange um zu lernen, praktisch zu sein. Außerdem ist Ember eine bessere Version von Angular ... von dem, was ich höre. Lernen Reagieren Sie in Ihrer Freizeit und verwenden Sie es für das nächste Projekt oder einige interne Tools für Ihr Unternehmen. – FakeRainBrigand

+1

Ja, es ist immer besser, es selbst zu lernen und dann mit etwas Kleinem anzufangen. –

+1

Separation HTML und JS machen Code schwerer zu verstehen Maintin und Debug? Scheiße. In Wirklichkeit ist diese Trennung eine gute Übung, "um html nicht mit js zu mischen" - und es macht das Projekt sehr klar und leicht verständlich. Model-View-Controler - html eckige Vorlage ist Ansicht, js eckige Komponente ist Controller, und auch eckig haben Modellteil (Modelle + Dienstleistungen) –