Heim > Web-Frontend > js-Tutorial > Aktualisieren Sie Ihre App auf Angular 1.5 -Komponenten und darüber hinaus!

Aktualisieren Sie Ihre App auf Angular 1.5 -Komponenten und darüber hinaus!

Christopher Nolan
Freigeben: 2025-02-18 11:37:10
Original
266 Leute haben es durchsucht

Aktualisieren Sie Ihre App auf Angular 1.5 -Komponenten und darüber hinaus!

Dieser Artikel wurde von Dan Prince und Michaela Lehr überprüft. Vielen Dank an alle Peer -Rezensenten von SitePoint, die SitePoint -Inhalte so gut wie möglich gemacht haben!

Mit jeder neuen Freisetzung von AngularJS versucht das Entwicklungsteam, die Lücke zwischen AngularJs 1.x und 2. mit der Freisetzung von AngularJS 1.5 zu schließen. Entwickler können Anwendungen strukturell wie AngularJS 2.0 ähnlich schreiben.

.

In diesem Tutorial werden wir in AngularJS 1.4 eine Rasterrichtlinie erstellen. Wir gehen dann durch die Schritte, um es auf 1,5 zu aktualisieren, und schauen Sie uns anschließend an, wie wir es in Version 2.0 umwandeln können.

Key Takeaways

  • Beginnen Sie mit AngularJS 1.4: Erstellen Sie zunächst eine einfache Rasteranweisung in AngularJS 1.4, um ein JSON -Array anzuzeigen, wobei der Bootstrap für das Layout -Design verwendet wird.
  • Upgrade auf AngularJS 1.5: Übergang Ihre AngularJS 1.4 -Richtlinie auf 1.5, indem Sie die Skriptreferenz ersetzen und die neue Helfermethode der neuen Komponentenanweisung verwenden, die die Konfiguration vereinfacht und sich auf zukünftige Upgrades vorbereitet.
  • Komponentenvorteile in AngularJS 1.5: Komponenten in AngularJS 1.5 bieten syntaktische Zucker über Richtlinien und bieten Standardkonfigurationen und einen optimierten Ansatz, der für den Übergang zu AngularJS 2.0 vorteilhaft ist.
  • Übergang zu AngularJS 2.0: Verstehen Sie die Notwendigkeit, von vorne zu beginnen, wenn Sie auf AngularJS 2.0 wechseln, aufgrund seiner architektonischen Unterschiede zu 1.x -Versionen, die zusätzliche Bibliotheken und ein neues Setup erfordern.
  • Verwenden von AngularJS 2.0-Komponenten: Implementieren Sie Komponenten in AngularJS 2.0 mithilfe von TypeScript, wodurch die Wartbarkeit und Testbarkeit des Codes verbessert wird, wobei Anerkennung, dass AngularJS 2.0 komponentenbasiert ist und erweiterte Merkmale wie hierarchische Abhängigkeitsinjektion und dynamisches Belastung unterstützt.
  • .

Erste Schritte

Beginnen wir zunächst ein Projektverzeichnis namens AngularMigrateApp. Erstellen Sie in diesem Ordner eine HTML -Seite namens Index.html. So sollte die Seite aussehen:

<span><span><!DOCTYPE html></span>
</span><span><span><span><html</span> lang<span>="en"</span> ng-app<span>="myApp"</span> class<span>="no-js"</span>></span>
</span><span><span><span><head</span>></span>
</span>    <span><span><span><title</span>></span>My AngularJS App<span><span></title</span>></span>
</span>    <span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"</span>></span>
</span><span><span><span></head</span>></span>
</span><span><span><span><body</span>></span>
</span>    <span><span><span><script</span> src<span>="https://code.angularjs.org/1.4.10/angular.js"</span>></span><span><span></script</span>></span>
</span><span><span><span></body</span>></span>
</span><span><span><span></html</span>></span>
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

sowie das eckige Framework verwenden wir auch Bootstrap, um unser Richtlinienlayout zu entwerfen. Wir nehmen beide Dateien direkt von CDNs aus.

Erstellen einer Gitterrichtlinie

Erstellen wir eine einfache Rasteranweisung, um ein JSON -Array anzuzeigen. Wir werden zunächst ein AngularJS -Modul erstellen.

angular<span>.module('myApp', [])
</span>    <span>.constant('employees', [{
</span>        <span>firstName: 'Rima',
</span>        <span>lastName: 'George',
</span>        <span>location: 'San Francisco'
</span>    <span>}, {
</span>        <span>firstName: 'Shaun',
</span>        <span>lastName: 'John',
</span>        <span>location: 'Germany'
</span>    <span>}, {
</span>        <span>firstName: 'Rahul',
</span>        <span>lastName: 'Kurup',
</span>        <span>location: 'Bangalore'
</span>    <span>}, {
</span>        <span>firstName: 'Samson',
</span>        <span>lastName: 'Davis',
</span>        <span>location: 'Canada'
</span>    <span>}, {
</span>        <span>firstName: 'Shilpa',
</span>        <span>lastName: 'Agarwal',
</span>        <span>location: 'Noida'
</span>    <span>}])
</span>
    <span>.controller('HomeCtrl', ['$scope', 'employees', function($scope<span>, employees</span>) {
</span>        $scope<span>.employees = employees;
</span>    <span>}])
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wir haben eine Konstante genannt, die eine Reihe von Beispieldaten enthält. Anschließend injizieren wir dieses Array in Homectrl und stellen es im Bereich des Controllers zur Verfügung.

Erstellen wir eine Anweisung namens MyGrid, mit der wir das obige JSON -Array anzeigen.

<span>.directive('myGrid', function() {
</span>    <span>return {
</span>    <span>}
</span><span>})
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wir möchten die Anweisung über einen Tag -Namen wie folgt verwenden:

<span><span><span><my-grid</span>></span><span><span></my-grid</span>></span>
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Fügen wir also die Einschränkungsoption hinzu, um dies anzugeben:

<span>.directive('myGrid', function() {
</span>    <span>return {
</span>        <span>restrict: 'E'
</span>    <span>}
</span><span>})
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Als nächstes möchten wir die Mitarbeiterdaten aus der Ansicht in die Richtlinie übergeben. Wir werden es also als Bindung hinzufügen:

<span><span><!DOCTYPE html></span>
</span><span><span><span><html</span> lang<span>="en"</span> ng-app<span>="myApp"</span> class<span>="no-js"</span>></span>
</span><span><span><span><head</span>></span>
</span>    <span><span><span><title</span>></span>My AngularJS App<span><span></title</span>></span>
</span>    <span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"</span>></span>
</span><span><span><span></head</span>></span>
</span><span><span><span><body</span>></span>
</span>    <span><span><span><script</span> src<span>="https://code.angularjs.org/1.4.10/angular.js"</span>></span><span><span></script</span>></span>
</span><span><span><span></body</span>></span>
</span><span><span><span></html</span>></span>
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Jetzt können wir die Mitarbeiterdaten als Attribut an die Richtlinie übergeben:

angular<span>.module('myApp', [])
</span>    <span>.constant('employees', [{
</span>        <span>firstName: 'Rima',
</span>        <span>lastName: 'George',
</span>        <span>location: 'San Francisco'
</span>    <span>}, {
</span>        <span>firstName: 'Shaun',
</span>        <span>lastName: 'John',
</span>        <span>location: 'Germany'
</span>    <span>}, {
</span>        <span>firstName: 'Rahul',
</span>        <span>lastName: 'Kurup',
</span>        <span>location: 'Bangalore'
</span>    <span>}, {
</span>        <span>firstName: 'Samson',
</span>        <span>lastName: 'Davis',
</span>        <span>location: 'Canada'
</span>    <span>}, {
</span>        <span>firstName: 'Shilpa',
</span>        <span>lastName: 'Agarwal',
</span>        <span>location: 'Noida'
</span>    <span>}])
</span>
    <span>.controller('HomeCtrl', ['$scope', 'employees', function($scope<span>, employees</span>) {
</span>        $scope<span>.employees = employees;
</span>    <span>}])
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Zu guter Letzt benötigen wir eine HTML -Vorlage, um die Daten anzuzeigen:

<span>.directive('myGrid', function() {
</span>    <span>return {
</span>    <span>}
</span><span>})
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Fügen Sie das folgende HTML -Vorlagen -Skript in den Körper von Index hinzu.

<span><span><span><my-grid</span>></span><span><span></my-grid</span>></span>
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Wie Sie im obigen Code sehen können, werden wir über die Info -Eigenschaft iteriert und alle Elemente in der Liste der Mitarbeiter angezeigt.

Verwenden wir die MyGrid -Direktive in Index.html. Fügen Sie den folgenden Code hinzu:

<span>.directive('myGrid', function() {
</span>    <span>return {
</span>        <span>restrict: 'E'
</span>    <span>}
</span><span>})
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Wir haben den Homectrl -Controller angegeben und im Inneren haben unsere Richtlinie verwendet. Speichern Sie die Änderungen und stöbern Sie auf der Seite index.html. Hier ist eine Demo des Datenrasters in Aktion:

Siehe den Stift AngularJS 1.4 Demo von sitepoint (@sinepoint) auf CodePen.

Upgrade auf 1,5

Bisher haben wir mit Version 1.4 eine AngularJS -Anweisung erstellt und sie funktioniert ziemlich gut. Versuchen wir nun, denselben Code mit AngularJS 1.5 zu verwenden und zu sehen, ob etwas bricht.

Ersetzen wir die vorhandene Skriptreferenz durch einen CDN -Link zu Version 1.5. Wenn Sie versuchen, die Seite zu aktualisieren, sollte alles weiter gut funktionieren. Mit dieser neuen Veröffentlichung der 1.x -Linie rückt das Framework näher an die Art und Weise, wie AngularJS 2.0 mit Komponenten funktioniert, und wir können dies in unserem Code nutzen, um den eventuellen Übergang zu Version 2.0 zu erleichtern.

In AngularJS 1.5 sind Komponenten syntaktischer Zucker für Richtlinien, die sich um die Standardeinstellungen kümmern und eine einfachere Konfiguration aufweisen. Sie sollten als Ersatz bevorzugt werden, insbesondere für diejenigen, die in Zukunft ein Upgrade aufbauen möchten.

Bei der Arbeit mit AngularJs arbeiten Entwickler im Allgemeinen dazu, mit Controller-basierten Ansatz zu arbeiten, aber dies kann viele Probleme verursachen, wenn die Anwendung zu wachsen beginnt. Ein Controller- und Ansichtsansatz führt zu wiederholten NG-Controller/-ansicht, aber ein komponentenbasierter Ansatz löst das Problem, indem Komponenten erstellt werden können, die in größere Komponenten komponiert werden können, ohne den Code zu wiederholen.

Versuchen wir, die neue Helfermethode der neuen Komponentenanweisung zu verwenden und unseren vorhandenen Code zu ändern. Wir erstellen zunächst eine Komponente:

Im Gegensatz zur Anweisungsmethode - die eine Funktion nimmt - nimmt die Komponentenmethode ein Objekt an. Wir werden die gleichen Objekte übergeben, die wir in unserer Richtlinie mit einer anderen Vorlage hatten. Hier ist die HTML -Vorlage:
<span>.directive('myGrid', function() {
</span>    <span>return {
</span>        <span>restrict: 'E',
</span>        <span>scope: {
</span>            <span>info: '=info'
</span>        <span>}
</span>    <span>}
</span><span>})
</span>
Nach dem Login kopieren
Nach dem Login kopieren

Hier ist der geänderte Komponentencode:
<span><span><span><my-grid</span> info<span>="employees"</span>></span><span><span></my-grid</span>></span>
</span>
Nach dem Login kopieren

Wie im obigen Code zu sehen, haben wir alle Optionen übergeben, die wir in unserer alten Richtlinie hatten.
<span>.directive('myGrid', function() {
</span>    <span>return {
</span>        <span>restrict: 'E',
</span>        <span>scope: {
</span>            <span>info: '=info'
</span>        <span>},
</span>        <span>templateUrl : '/directiveGrid.html'
</span>    <span>}
</span><span>})
</span>
Nach dem Login kopieren

Erstellen Sie eine Komponente namens MyComp in der Seite index.html.

Speichern Sie die Änderungen und aktualisieren Sie die Seite. Sie sollten in der Lage sein, dass die Daten nicht angezeigt werden, aber auch kein Fehler in der Browserkonsole.
<span><span><span><script</span> type<span>="text/ng-template"</span> id<span>="/directiveGrid.html"</span>></span><span>
</span></span><span><span>    <span><div class="panel panel-primary">
</span></span></span><span><span>        <span><div class="panel-heading">Site Point Directive Grid</div>
</span></span></span><span><span>        <span><table class="table">
</span></span></span><span><span>            <span><thead>
</span></span></span><span><span>                <span><tr>
</span></span></span><span><span>                    <span><th>FirstName</th>
</span></span></span><span><span>                    <span><th>Last Name</th>
</span></span></span><span><span>                    <span><th>Location</th>
</span></span></span><span><span>                <span></tr>
</span></span></span><span><span>            <span></thead>
</span></span></span><span><span>            <span><tbody>
</span></span></span><span><span>                <span><tr ng-repeat="employee in info">
</span></span></span><span><span>                    <span><td>{{ employee.firstName }}</td>
</span></span></span><span><span>                    <span><td>{{ employee.lastName }}</td>
</span></span></span><span><span>                    <span><td>{{ employee.location }}</td>
</span></span></span><span><span>                <span></tr>
</span></span></span><span><span>            <span></tbody>
</span></span></span><span><span>        <span></table>
</span></span></span><span><span>    <span></div>
</span></span></span><span><span></span><span><span></script</span>></span>
</span>
Nach dem Login kopieren

Wenn wir uns die Vergleichskarte zwischen Komponente und Richtlinie der offiziellen Site ansehen, können wir sehen, dass der Umfang in Komponenten immer isoliert ist.

Aktualisieren Sie Ihre App auf Angular 1.5 -Komponenten und darüber hinaus!

Also müssen wir die Option der Bindungen verwenden, um Daten an den Controller zu binden. Die Einschränkungsoption ist nicht mehr erforderlich, da die Komponenten nur auf Elemente beschränkt sind.

Hier ist der geänderte Code:

<span><span><!DOCTYPE html></span>
</span><span><span><span><html</span> lang<span>="en"</span> ng-app<span>="myApp"</span> class<span>="no-js"</span>></span>
</span><span><span><span><head</span>></span>
</span>    <span><span><span><title</span>></span>My AngularJS App<span><span></title</span>></span>
</span>    <span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"</span>></span>
</span><span><span><span></head</span>></span>
</span><span><span><span><body</span>></span>
</span>    <span><span><span><script</span> src<span>="https://code.angularjs.org/1.4.10/angular.js"</span>></span><span><span></script</span>></span>
</span><span><span><span></body</span>></span>
</span><span><span><span></html</span>></span>
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Die Bindungsinformationen werden an den Controller gebunden. Der Standard -Alias ​​für den Controller ist $ Strg und in der Vorlage werden wir diese verwenden, um auf die Info -Eigenschaft zuzugreifen:

angular<span>.module('myApp', [])
</span>    <span>.constant('employees', [{
</span>        <span>firstName: 'Rima',
</span>        <span>lastName: 'George',
</span>        <span>location: 'San Francisco'
</span>    <span>}, {
</span>        <span>firstName: 'Shaun',
</span>        <span>lastName: 'John',
</span>        <span>location: 'Germany'
</span>    <span>}, {
</span>        <span>firstName: 'Rahul',
</span>        <span>lastName: 'Kurup',
</span>        <span>location: 'Bangalore'
</span>    <span>}, {
</span>        <span>firstName: 'Samson',
</span>        <span>lastName: 'Davis',
</span>        <span>location: 'Canada'
</span>    <span>}, {
</span>        <span>firstName: 'Shilpa',
</span>        <span>lastName: 'Agarwal',
</span>        <span>location: 'Noida'
</span>    <span>}])
</span>
    <span>.controller('HomeCtrl', ['$scope', 'employees', function($scope<span>, employees</span>) {
</span>        $scope<span>.employees = employees;
</span>    <span>}])
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wenn Sie nun die Seite aktualisieren, sollten Sie die mit der MyComp -Komponente angezeigten Daten anzeigen können.

Siehe den Stift AngularJS 1.5 Demo von sitepoint (@sinepoint) auf CodePen.

Upgrade auf 2.0

Hinweis: AngularJS 2.0 ist noch in Beta. Die Version, die wir verwenden, ist Angular2.0.0-beta.8.

Ersetzen wir die vorhandene Version von AngularJs in unserer App durch einen Link zu Version 2.0 aus dem CDN und sehen Sie, ob etwas bricht:

<span>.directive('myGrid', function() {
</span>    <span>return {
</span>    <span>}
</span><span>})
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Nach dem Auffrischen der Seite wird auf der Seite nichts angezeigt. Wenn wir die Browserkonsole überprüfen, können wir auch ein paar Fehler sehen.

Aktualisieren Sie Ihre App auf Angular 1.5 -Komponenten und darüber hinaus!

Wie Sie sehen, funktionierte unser Komponentencode nicht gut mit Angular 2.0!

Beginnen wir von Schein und sehen, wie die neue Version funktioniert. Dann versuchen wir, unsere Komponente zu portieren.

Während es möglich ist, mit Angular 1.x zu beginnen, indem das Framework mit einem einzigen Skript -Tag einbezogen wird, hat sich die Situation mit Angular 2.0 geändert. Wir brauchen ein paar andere Bibliotheken, um zu funktionieren. Während das Laden dieser separaten Skript -Tags für die Entwicklung in Ordnung ist, sollen sie als Teil eines Build -Prozessprozesses für die Produktion gebündelt werden.

Wenn wir uns den offiziellen Schnellanleitung ansehen, können wir feststellen, dass wir einige andere Bibliotheken und Entwicklungsabhängigkeiten benötigen, um mit 2.0 zu beginnen.

Erstellen wir einen Ordner namens AngularJS2.0Component und erstellen Sie eine Paket.json -Datei wie folgt:

<span><span><span><my-grid</span>></span><span><span></my-grid</span>></span>
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Die obige Datei zeigt alle Abhängigkeiten, die von AngularJS 2.0 Anwendung erforderlich sind. Speichern Sie die Änderungen und installieren Sie die erforderlichen Abhängigkeiten mit NPM:

<span>.directive('myGrid', function() {
</span>    <span>return {
</span>        <span>restrict: 'E'
</span>    <span>}
</span><span>})
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Erstellen Sie einen Subordner mit dem Namen App und in einer Datei namens app.comPonent.js mit dem folgenden Code:

<span>.directive('myGrid', function() {
</span>    <span>return {
</span>        <span>restrict: 'E',
</span>        <span>scope: {
</span>            <span>info: '=info'
</span>        <span>}
</span>    <span>}
</span><span>})
</span>
Nach dem Login kopieren
Nach dem Login kopieren

Im obigen Code verwenden wir den Angular -Core -Namespace ng.core, um eine Komponente zu erstellen. Wir haben einen Selektor für unsere Komponente als my-comp definiert. Wir verwenden dieselbe HTML, grid.html wie die Vorlage für unsere App. Wir haben unser Mitarbeiterobjekt im Konstruktor der Komponente definiert.

Erstellen Sie eine Datei namens main.js und fügen Sie im folgenden Code ein:

<span><span><!DOCTYPE html></span>
</span><span><span><span><html</span> lang<span>="en"</span> ng-app<span>="myApp"</span> class<span>="no-js"</span>></span>
</span><span><span><span><head</span>></span>
</span>    <span><span><span><title</span>></span>My AngularJS App<span><span></title</span>></span>
</span>    <span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"</span>></span>
</span><span><span><span></head</span>></span>
</span><span><span><span><body</span>></span>
</span>    <span><span><span><script</span> src<span>="https://code.angularjs.org/1.4.10/angular.js"</span>></span><span><span></script</span>></span>
</span><span><span><span></body</span>></span>
</span><span><span><span></html</span>></span>
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Dies fordert Angular an, die gerade erstellte Komponente zu laden.

Erstellen Sie als nächstes eine Datei namens Index.html außerhalb des App -Ordners und fügen Sie im folgenden Code ein:

angular<span>.module('myApp', [])
</span>    <span>.constant('employees', [{
</span>        <span>firstName: 'Rima',
</span>        <span>lastName: 'George',
</span>        <span>location: 'San Francisco'
</span>    <span>}, {
</span>        <span>firstName: 'Shaun',
</span>        <span>lastName: 'John',
</span>        <span>location: 'Germany'
</span>    <span>}, {
</span>        <span>firstName: 'Rahul',
</span>        <span>lastName: 'Kurup',
</span>        <span>location: 'Bangalore'
</span>    <span>}, {
</span>        <span>firstName: 'Samson',
</span>        <span>lastName: 'Davis',
</span>        <span>location: 'Canada'
</span>    <span>}, {
</span>        <span>firstName: 'Shilpa',
</span>        <span>lastName: 'Agarwal',
</span>        <span>location: 'Noida'
</span>    <span>}])
</span>
    <span>.controller('HomeCtrl', ['$scope', 'employees', function($scope<span>, employees</span>) {
</span>        $scope<span>.employees = employees;
</span>    <span>}])
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Die obige Index.html -Seite ist die Starter -Vorlage für AngularJS 2.0 -Anwendungen. Wir haben alle erforderlichen Abhängigkeiten aufgenommen, und innerhalb des Body -Tags haben wir unsere Komponente verwendet.

Speichern Sie die Änderungen und starten Sie den Server mit dem NPM -Start. In diesem Befehl wird ein lokaler Entwicklungsserver namens Lite-Server ausgeführt, der Index.html in einem Browser lädt.

Aber die Daten werden immer noch nicht angezeigt!

In AngularJS 2.0 ist die Syntax für das Schleifen etwas anders. Ändern Sie den Schleifenabschnitt in grid.html wie unten gezeigt:

<span>.directive('myGrid', function() {
</span>    <span>return {
</span>    <span>}
</span><span>})
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Speichern Sie die Änderungen und starten Sie den Server neu, und Sie sollten in der Lage sein, die in der App angezeigten Mitarbeiterdaten zu sehen.

wickeln Sie es

ein

Komponenten sind ein wesentlicher Bestandteil von AngularJS 2.0, und es wäre richtig zu sagen, dass es sich um ein Komponentenbasis handelt. Mit jeder neuen Version der 1.x -Linie rücken wir uns näher an die Entwicklung von Anwendungen mit Version 2.0 heran.

In diesem Tutorial haben wir eine AngularJS -Direktive mit Verison 1.4 des Frameworks erstellt. Wir haben die Richtlinie überarbeitet, um die Komponentensyntax von Version 1.5 zu nutzen. Schließlich haben wir es so aktualisiert, dass es mit Angular Version 2.0 funktioniert.

Für einen eingehenderen Blick auf die Migration Ihrer AngularJS-Apps sollten Sie den offiziellen Migrationshandbuch lesen. Angular 2 -Code kann auch in TypeScript und Dart geschrieben werden. Wenn Sie interessiert sind, empfehlen ich, den offiziellen Leitfaden für den Einstieg mit AngularJS 2 in TypeScript bzw. DART zu lesen.

Teilen Sie Ihre Gedanken und Vorschläge in den Kommentaren unten!

häufig gestellte Fragen (FAQs) zum Upgrade auf Winkelkomponenten

Was sind die wichtigsten Unterschiede zwischen AngularJs und Angular? Angular ist ein komplettes Umschreiben aus demselben Team, das AngularJs gebaut hat. Die wichtigsten Unterschiede umfassen Sprache, Architektur, Expressionssyntax, mobile Unterstützung und Routing. Angular verwendet TypeScript, das kompakter und schneller ist als JavaScript, das in AngularJs verwendet wird. Angular hat eine hierarchische Abhängigkeitsinjektion, eine dynamische Belastung und eine asynchrone Vorlagenkompilierung, was sie effizienter macht.

Warum sollte ich von AngularJs auf Angular aufrüsten? Angular hat eine bessere Leistung aufgrund seiner hierarchischen Abhängigkeitsinjektion und der komponentenbasierten Architektur. Im Gegensatz zu AngularJs unterstützt es auch mobile Geräte. Angular verwendet TypeScript, das statische Typisierung, Schnittstellen und Klassen liefert, wodurch der Code wartbar und Testbarer wird. Angular hat auch eine verbesserte Abhängigkeitsinjektion, -modularität und Testbarkeit. Zunächst müssen Sie Ihre AngularJS -Anwendung für die Migration vorbereiten, indem Sie dem AngularJS -Stilhandbuch folgen, Ihren Code in einer Komponentenstruktur organisieren und einen Modulloader verwenden. Anschließend können Sie den Migrationsprozess starten, indem Sie Angular in Ihre Anwendung starten, Winkelkomponenten für Ihre AngularJS -Komponenten erstellen und Ihre Dienste migrieren. Schließlich können Sie AngularJs aus Ihrer Anwendung entfernen. , Sprache und Syntax. Möglicherweise stellen Sie Probleme mit der Migration Ihres AngularJS-Code an Typscript, der Anpassung an die neue Komponenten-basierte Architektur und das Erlernen der neuen Syntax für Ausdrücke. Möglicherweise müssen Sie auch Ihre Routing -Konfiguration umschreiben und Ihren Build -Prozess anpassen, um TypeScript zu verarbeiten. zusammen in derselben Anwendung während des Migrationsprozesses. Dies ist als hybride Anwendung bekannt. Sie können sowohl AngularJs als auch Angular in Ihrer Anwendung bootstrap und sie können koexistieren und miteinander interagieren. Auf diese Weise können Sie Ihre Anwendung inkrementell, Komponenten nach Komponenten, migrieren, anstatt ein vollständiges Umschreiben durchzuführen. Kompiliert zu einfacher JavaScript. In Angular liefert TypeScript statische Typisierung, Schnittstellen und Klassen, wodurch der Code wartbar und prüfbarer wird. TypeScript bietet außerdem eine bessere Werkzeuge mit Autokapital-, Typüberprüfungs- und Quellkarte-Unterstützung, was die Entwicklungserfahrung verbessert. Die Architektur in Angular verbessert die Leistung, indem ein unidirektionaler Datenfluss und eine Änderungserkennung ermöglicht werden. Jede Komponente in Angular hat eine klar definierte Schnittstelle und verkauft ihr eigenes Verhalten und Rendering. Dies erleichtert die Anwendung zu verstehen, zu testen und zu warten. Der unidirektionale Datenfluss stellt sicher, dass die Ansicht immer eine Projektion des Modells ist, was das Programmiermodell vereinfacht und die Leistung verbessert.

Wie unterstützt Angular Mobilgeräte? Es bietet auch Leistungsoptimierungen für mobile Geräte, wie z. B. fauler Laden und asynchrone Vorlagenkompilierung. Angular unterstützt auch progressive Web -Apps (PWAs), die auf mobilen Geräten installiert und offline arbeiten können.

Wie kann ich meine Winkelanwendung testen? Ermöglicht Ihnen eine dynamische Testumgebung für Ihre Komponenten. Sie können Jasmine, ein verhaltensgetriebenes Entwicklungsrahmen zum Testen von JavaScript-Code, und Karma, einen Testläufer, verwenden. Angular unterstützt auch End-to-End-Tests mit dem Prognaktor. Bücher und Kurse. Die Angular -Community ist auch sehr aktiv und unterstützend, mit vielen Foren, Blogs und Stackoverflow -Fragen, die als Referenz zur Verfügung stehen.

Das obige ist der detaillierte Inhalt vonAktualisieren Sie Ihre App auf Angular 1.5 -Komponenten und darüber hinaus!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage