Warum sollte ich Angular verwenden? [geschlossen]

20

Aus dem grundlegenden Angular-Tutorial geht hervor, dass alles, was es tut, darin besteht, JSON von einer API abzurufen und anzuzeigen. Es gibt auch seine doppelte Bindungsmagie.

Aber warum sollte ich es anstelle einer Backend-Lösung (wie Rails) verwenden, die die Ansicht im Backend erstellt und dem Benutzer zur Verfügung stellt, wobei bereits alles vorhanden ist? Was sind die Anwendungsfälle?

gberger
quelle

Antworten:

26

TLDR;

Angular hilft Ihnen bei der Bewältigung der Komplexität umfangreicher Benutzeroberflächen. Mit zunehmender Komplexität der Benutzeroberfläche wird das herkömmliche Modell zum Generieren von Seiten auf dem Server wesentlich komplexer. Mit Angular können Sie Ihre Benutzeroberfläche in verwaltbare Abschnitte aufteilen und die Benutzeroberfläche von der Implementierung trennen. Dies erleichtert die serverseitige Seitenerstellung erheblich. Angular wird jedoch erst dann wirklich einsatzbereit, wenn Sie auf reine Javascript-basierte Anwendungen umsteigen. Ein gutes Beispiel für eine solche Anwendung ist Trello .

Die lange Geschichte

Angular ist nicht wirklich auf Sites ausgerichtet, die Sie bequem implementieren können, indem Sie alles auf dem Server generieren und übermitteln. Auch wenn dies ein perfekter Ansatz ist, der für viele Websites und Anwendungen im Internet funktioniert, wird es immer komplexer (und damit schwieriger), diesen Ansatz beizubehalten, wenn Sie versuchen, die Interaktivität auf Ihrer Website zu erhöhen.

Letztendlich lösen Sie dies, indem Sie Ihre Benutzeroberfläche immer mehr in die Javascript-Seite der Gleichung schieben. Mit Angular können Sie die Benutzeroberfläche in Komponenten aufteilen und so eine klare Trennung zwischen Erscheinungsbild und Funktionsweise erzielen. Sie können dann relativ einfache Seiten auf dem Server erstellen, und das JS-Front-End wird verwendet, um eine umfangreiche Benutzeroberfläche zu erstellen, die separate Aufrufe an Ihren Server für die benötigten Daten vornimmt.

Es kommt jedoch der Punkt, an dem Sie lediglich eine Stub-Seite auf dem Server installieren möchten, die eine vollständig auf Javascript basierende Anwendung lädt. Das wohl bekannteste Beispiel für einen Anwendungsfall, bei dem Angular wirklich glänzt, ist Trello (es wird Backbone verwendet, nicht Angular, aber es ist derselbe Anwendungsfall). Es gibt eine Site http://builtwith.angularjs.org/, die weitere Beispielsites enthält, die Angular verwenden.

Also die kurze Antwort? Angular erleichtert das Erstellen umfangreicher, interaktiver Benutzeroberflächen, indem Sie Ihre Benutzeroberfläche in Komponenten zerlegen und letztendlich vollständig auf Javascript umstellen können.

jungsherman
quelle
3
AngularJ-Sodes bieten keine klare Trennung von Erscheinungsbild und Logik.
rsman
13
@rsman, das ist klar. Der springende Punkt bei der Datenbindung ist, dass Sie nicht eine ganze Reihe von DOM-Manipulationscode schreiben. Angular übernimmt dies für Sie. Sie definieren, wie es aussieht. Sie definieren, wie Ihre Interaktionen usw. funktionieren. Sie vermeiden es jedoch Die beiden müssen mit Code verbunden werden, der das Aussehen von Code aktualisiert, der Interaktionen verarbeitet.
guysherman
3
Trello, in dem Beispiel verwendet, verwendet nicht Angular blog.fogcreek.com/the-trello-tech-stack
JAMESSTONEco
1
@jamesstoneco in der Tat nicht, ich habe Trello einfach als Beispiel für eine rein clientseitige JS-Anwendung verwendet. Es war eines der ersten, die es gut machten.
guysherman
7

Es geht darum, reaktionsschnellere Benutzeroberflächen zu erstellen. Durch die doppelte Bindung, Abhängigkeitsinjektion usw. können sehr einfach dynamische Seiten erstellt werden. Sie können Anweisungen in Angular schreiben, wodurch Sie eine Ansicht deklarativ erstellen können.

In einem aktuellen Projekt haben wir beispielsweise eine Ansicht, die mehrere hundert Zeilen JavaScript-Code verwendet, um eine reaktionsschnelle Benutzererfahrung zu erzielen. Trotzdem ist die Seite ein bisschen fehlerhaft und sehr schwer zu pflegen. Wir haben uns nach einer besseren Option umgesehen und uns backbone.js und knockout.js angesehen. Schließlich versuchten wir es mit Angular. Mit nur wenigen Codezeilen konnten wir eine viel reaktionsschnellere und wartbarere Seite erstellen. Der gesamte DOM-Manipulationscode war verschwunden. Vorbei waren all die klobigen Kreationen von Backend-Ansichten, die abgerufen und an den richtigen Stellen eingefügt werden mussten. Der gesamte Code, der geschrieben wurde, um das Modell und die Ansicht synchron zu halten, war verschwunden. Mit dieser Erfahrung wurde die Entscheidung, nach Angular zu ziehen, leichter und wir haben es bisher nicht bereut.

Vincent Ramdhanie
quelle
"Der gesamte DOM-Manipulationscode war verschwunden." Dies ist meiner Meinung nach das Wichtigste.
Bent
5

Angular ist für die Entwicklung von Einzelseitenanwendungen gedacht und bietet ein solides Grundgerüst für Ihre App. Es ist auch gut mit Formularen, nicht so gut mit komplexen überfüllten Benutzeroberflächen mit vielen Daten. Die bidirektionale Datenbindung ist anfangs "magisch", aber Sie müssen sich bewusst sein, dass die neuesten Frameworks (einschließlich Angular 2 selbst) von der bidirektionalen Datenbindung abweichen, um einen einfacheren Ansatz für den Datenfluss nach unten / den Ereignisfluss nach oben zu erreichen (um dies zu verdeutlichen) Geschichte wäre hier zu lang).

Ich muss Sie auch warnen, dass Angular keine bestimmte Vorgehensweise hat und manchmal zu viele Möglichkeiten bietet, eine Katze zu häuten, was die Lernkurve steiler machen kann. Auch wenn Sie eine Angular-App skalieren möchten, müssen Sie die internen Mechanismen und die möglichen Auswirkungen auf die Leistung kennen. Sobald Sie dies tun und einheitliche solide Entwurfsmuster festgelegt haben, ist der Himmel die Grenze. Aber Sie müssen Zeit dafür aufwenden.

Ihre Frage scheint sich jedoch eher mit den Anwendungsfällen von SPAs als mit Angular selbst zu befassen.

Die Anwendungsfälle von Einzelseitenanwendungen bestehen darin, Webanwendungen mit einer robusten Benutzeroberfläche / Benutzeroberfläche und einem insgesamt besseren Anwendungsgefühl bereitzustellen. Indem Sie Ihre Seite nicht neu laden müssen, sparen Sie Renderzeit und Bandbreite. Sie trennen auch Daten und Präsentation, was fantastisch ist. Ihre Bewerbung wird:

  • Statische Dateien, einschließlich Ihrer index.html
  • Eine REST-API, die Daten bereitstellt
  • Eine datengesteuerte Front-End-Anwendung
Thomas Roch
quelle