it-swarm.com.de

Warum sollte ich Angular verwenden?

Aus dem grundlegenden Tutorial Angular Tutorial) geht hervor, dass es lediglich JSON von einer API abruft und anzeigt. Außerdem gibt es 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 bereitstellt, wobei bereits alles vorhanden ist? Was sind die Anwendungsfälle?

20
gberger

TLDR;

Angular hilft Ihnen beim Umgang mit der Komplexität umfangreicher Benutzeroberflächen. Mit zunehmender Komplexität der Benutzeroberfläche wird das traditionelle Modell zum Generieren von Seiten auf dem Server viel komplexer. Mit Angular können Sie Ihre Benutzeroberfläche in verwaltbare Blöcke zerlegen und die Benutzeroberfläche von der Implementierung trennen. Dies erleichtert die serverseitige Seitengenerierung erheblich, aber Angular kommt wirklich zur Geltung, 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. Obwohl dies ein perfekter Ansatz ist, der für viele Websites und Anwendungen im Internet funktioniert, wird es immer komplexer (daher schwierig), diesen Ansatz beizubehalten, wenn Sie versuchen, das Maß an 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 verschieben. Mit Angular können Sie Ihre Benutzeroberfläche in Komponenten aufteilen und so klar zwischen dem Erscheinungsbild und der Funktionsweise unterscheiden. 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 Server für die benötigten Daten an Ihren Server zurückruft.

Es kommt jedoch ein Punkt, an dem Sie lediglich eine Stub-Seite serverieren möchten, auf der eine vollständig auf Javascript basierende Anwendung geladen wird. Das wahrscheinlich bekannteste Beispiel für die Art von Anwendungsfall, in dem Angular wirklich glänzt, ist Trello (es verwendet Backbone, nicht Angular, aber es ist der gleiche 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, hochgradig interaktiver Benutzeroberflächen, indem Sie Ihre Benutzeroberfläche in Komponenten zerlegen und letztendlich vollständig Javascript verwenden können.

26
guysherman

Es geht darum, reaktionsschnellere Benutzeroberflächen zu erstellen. Die Doppelbindung, Abhängigkeitsinjektion usw. ermöglicht das einfache Erstellen dynamischer Seiten. Sie können Anweisungen in Angular) schreiben, wodurch Sie eine deklarative Möglichkeit zum Erstellen einer Ansicht erhalten.

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 etwas 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. Wir konnten mit nur wenigen Codezeilen eine viel reaktionsschnellere und wartbarere Seite erstellen. Der gesamte DOM-Manipulationscode war verschwunden. Vorbei waren all die klobigen Kreationen der Backend-Ansicht, die an den richtigen Stellen abgerufen und 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, zu Angular] zu wechseln, einfacher und wir haben es bisher nicht bereut.

7

Angular dient zur Entwicklung von Einzelseitenanwendungen und hilft bei der Bereitstellung eines soliden Grundgerüsts 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 zunächst "magisch", aber Sie müssen sich bewusst sein, dass die neuesten Frameworks (einschließlich Angular 2 selbst)) für einen einfacheren Datenfluss von der bidirektionalen Datenbindung abweichen Down/Event Flow Up-Ansatz (das Erzählen dieser 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 möchten Um eine Angular App) zu skalieren, müssen Sie die interne Mechanik und mögliche Auswirkungen auf die Leistung verstehen. Sobald Sie dies tun und konsistente solide Entwurfsmuster festlegen, ist der Himmel die Grenze. Aber Sie müssen Zeit dafür investieren.

Ihre Frage scheint jedoch eher die Anwendungsfälle von SPAs zu sein als Angular selbst).

Die Anwendungsfälle von Einzelseitenanwendungen sind Webanwendungen mit robuster Benutzeroberfläche/UX und insgesamt besserem Anwendungsgefühl. Wenn 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
  • A REST API-Serving-Daten
  • Eine datengesteuerte Front-End-Anwendung
5
Thomas Roch