2017-01-14 1 views
2

Ich bin etwas verwirrt, um zwischen Component vs Controller zu unterscheiden. Wie Controller mit Komponente in Winkel 2 ersetzt? Ich lese über Komponente:Controller ersetzt durch Komponente winkel 2

In Angular, eine Komponente eine besondere Art der Richtlinie ist es, die eine einfachere Konfiguration verwendet, die für eine komponentenbasierte Anwendungsstruktur geeignet ist.

Dies macht es einfacher, eine App so zu schreiben, als ob sie Web Components verwendet oder die Anwendungsarchitektur von Angular 2 verwendet.

Vorteile der Komponenten:

  • einfachere Konfiguration als einfache Richtlinien
  • vernünftige Default fördern und Best Practices
  • optimiert für komponentenbasierte Architektur
  • Schreiben Komponente Richtlinien wird es leichter zu Upgrade auf Angular 2

Wenn er nicht verwenden Komponenten:

  • für Richtlinien, die Aktionen in der Kompilierung und Pre-Link-Funktionen ausführen müssen, weil sie
  • nicht verfügbar sind, wenn Sie erweiterte Richtlinie Definition Optionen wie Priorität benötigen, Terminal , multielement
  • wenn Sie eine Anweisung wünschen, die von einem Attribut oder einer CSS-Klasse statt von einem Element ausgelöst wird.

von AngularJs Documentation

Auch, Read Unterschied zwischen Directive vs Component

Aber ich bin der Umsetzung derselben logic in component, die wir in controller tun.

So kann jemand über das gleiche erklären? Und wie man über die Architektur der Anwendung in Komponente Perspektive über Controller denken.

Antwort

0

Controller (Angular 1.x), wird durch die Komponente Klasse in Angular 2 ersetzt, weil wir jetzt ES6-Klassen haben.

ES6-Klassen, kombiniert mit Typescript, macht sehr einfach für Dinge wie Abhängigkeitsinjektion.

Vorlage gibt es sowohl in Winkel- und Winkel 2.

1

Ich würde sich aus der Perspektive der Architektur der Anwendung nicht unterscheiden, wie Sie fragen. Es ist fast dasselbe Konzept, das umbenannt und vereinfacht wird. Lange Rede, kurzer Sinn: Man kann es sich als dieselbe Art von Entität vorstellen.

Ich nehme an, component ist leichter für Menschen zu erfassen als controller, obwohl es in MVC passt, das letzte "C". Oft ist es einfacher, eine Komponente als Element der Benutzeroberfläche zu betrachten. Man kann sich das gesamte UI vorstellen, das aus mehreren Komponenten besteht, von denen jeder nur wenig Arbeit leistet, um das ganze Bild zu erstellen, und daher passt der Name aus der Sicht des Angular-Teams besser. Ich mag die Komponente auch besser.

Verwandte Themen