AngularJS hat sich zum beliebtesten Open-Source-JavaScript-Framework in der Welt der Webanwendungsentwicklung entwickelt. Seit seiner Gründung wurde sein Erfolg durch ein erstaunliches Wirtschaftswachstum sowie die Unterstützung und Akzeptanz von Gruppen – einzelnen Entwicklern, Unternehmen und Gemeinschaften – vorangetrieben.
Angular hat sich zu einem clientseitigen MVW-Framework (Model-View-Whatever) für die Erstellung komplexer Single-Page-Anwendungen entwickelt. Es spielt sowohl beim Anwendungstest als auch beim Anwendungsschreiben eine wichtige Rolle und vereinfacht gleichzeitig den Entwicklungsprozess.
Die aktuelle Version von Angular ist 1.3, die stabil ist und von Google (dem Framework-Betreuer) zur Unterstützung vieler Anwendungen verwendet wird (schätzungsweise laufen bei Google mehr als 1.600 Anwendungen auf Angular 1.2 oder 1.3). Angular 2.0 wurde letzten Oktober auf der Nigeria-Konferenz offiziell angekündigt und die Version wird kein komplexes großes Update sein.
Warum wird Angular 2.0 eingeführt?
Bevor wir weiter auf Angular 2.0 eingehen (voraussichtlicher Veröffentlichungstermin ist Ende 2015), wollen wir kurz die Philosophie hinter der neuen Version betrachten. Die Entwicklung von Angular 2.0 beginnt mit der Lösung der folgenden Probleme:
Mobil: Die neue Version wird sich auf die Entwicklung mobiler Anwendungen konzentrieren. Der Grundgedanke ist, dass es einfacher ist, mit der Desktop-Seite umzugehen, und sobald die Herausforderungen Mobilgeräte betreffen (Leistung, Ladezeiten), wird die Konzentration auf diesen Aspekt das Problem lösen.
Modularisierung: Einzelne Module werden aus Angular-Kern entfernt, um eine bessere Leistung zu erzielen. Das bedeutet, dass Sie die Teile auswählen können, die Sie benötigen.
Modernisierung: Angular 2.0 zielt auf ES6 und „immergrüne“ moderne Browser ab (die automatisch auf die neueste Version aktualisiert werden). Dies bedeutet, dass sich Entwickler auf Code konzentrieren können, der für die Geschäftsdomäne relevant ist.
Was sind die Kontroversen?
Der Migrationspfad zur Version 2.0 wurde beim Nigeria-Treffen nicht erwähnt. Es wurde auch darauf hingewiesen, dass der Wechsel zu Version 2.0 die ursprüngliche Anwendung der Version 1.3 beschädigen würde und es keine Abwärtskompatibilität gebe. Seitdem herrscht in der Entwicklergemeinschaft Unsicherheit und Spekulationen, und einige Entwickler beginnen sich zu fragen, ob es sich lohnt, ein neues Angular 1.3-Projekt zu starten.
Was sind die Änderungen?
AtScript
AtScript ist ein übergeordneter Satz von ES6 und wird zur Entwicklung von Angular 2.0 verwendet. Es wird vom Traceur-Compiler (zusammen mit ES6) verarbeitet, um ES5-Code zu generieren und die TypeScript-Typsyntax zu verwenden, um Assertionen zur Ausführungszeit zu generieren und so Prüfungen zur Kompilierungszeit zu ersetzen. AtScript ist jedoch nicht zwingend erforderlich und Sie können zum Schreiben von Angular-Anwendungen weiterhin reinen JavaScript/ES5-Code anstelle von AtScript verwenden.
Abhängigkeitseintrag (DI) verbessern
Die Grundidee des Dependency-Injection-Modells besteht darin, dass die Client-Klasse Client die Mitgliedsvariable IServer, von der sie abhängt, nicht selbst initialisieren muss, sondern ein unabhängiges Objekt verwendet, um eine entsprechende Implementierungsklasse zu erstellen IServer und weisen Sie es der Mitgliedsvariablen des Clients zu. Es ist besonders vorteilhaft für die Modulentwicklung und Komponentenisolierung. Angular 2.0 wird diesen Aspekt von Angular 1.X lösen. Fehlende Funktionen wie untergeordnete Injektoren und Lebensdauer-/Bereichskontrollen hinzugefügt.
Anmerkungen
AtScript bietet Tools zum Verknüpfen von Metadaten und Funktionalität. Dies hilft bei der Erstellung von Objektinstanzen, die der DI-Bibliothek die notwendigen Informationen bereitstellen (Überprüfung relevanter Metadaten beim Aufruf einer Funktion oder beim Erstellen einer Instanz einer Klasse). Es erleichtert auch das Überladen von Parameterdaten durch die Bereitstellung einer Anmerkung.
Injektoren für Kinder
Ein untergeordneter Injektor erbt alle Leistungsdienste seiner übergeordneten Klasse. Je nach Anforderung können unterschiedliche Arten von Objekten aufgerufen und unterschiedliche Umfänge automatisch abgedeckt werden.
Instanzbereich
Die verbesserte DI-Bibliothek verfügt über Instanz-Scoping, das noch leistungsfähiger wird, wenn untergeordnete Injektoren und eigene Bereichskennungen verwendet werden.
Vorlagen- und Datenbindung
Bei der Entwicklung von Anwendungen gehen Vorlagen und Datenbindung Hand in Hand.
Dynamisches Laden
Dies ist eine Funktion, die in der aktuellen Angular-Version fehlt, aber in Angular 2.0 erscheinen wird. Dadurch können Entwickler unterwegs neue Befehle oder Controller hinzufügen.
Vorlage
In Angular 2.0 wird der Vorlagenkompilierungsprozess asynchron sein. Da der Code auf der ES6-Modulspezifikation basiert, lädt der Modullader Abhängigkeiten, indem er einfach auf die Komponentendefinition verweist.
Befehle
In Angular 2.0 wird es drei Anweisungen geben:
Komponentenanweisungen – Diese erstellen wiederverwendbare Komponenten über gekapselte Logik in JavaScript, HTML oder einem optionalen CSS-Stylesheet.
Dekorationsanweisungen – Diese Anweisungen werden zum Dekorieren des Elements verwendet (z. B. das Hinzufügen eines Tooltips oder die Verwendung von ng-show/ng-hide zum Ein-/Ausblenden des Elements).
Vorlagenanweisungen – diese verwandeln HTML in wiederverwendbare Vorlagen. Die Instanziierung und Einbettung von Vorlagen in das DOM kann vollständig durch Anweisungen gesteuert werden. Beispiele hierfür sind ng-if und ng-repeat.
Pelan penghalaan
Penghalaan Sudut awal direka untuk mengendalikan beberapa situasi mudah. Walau bagaimanapun, apabila rangka kerja berkembang, semakin banyak ciri ditambah. Penghalaan sudah boleh dilanjutkan dalam Angular 2.0 dan akan merangkumi ciri asas berikut:
Konfigurasi penghalaan berasaskan json yang mudah;
Kontrak pilihan atas konfigurasi;
penghuraikan URL;
Menyokong rentetan pertanyaan;
Gunakan status tolak atau Hashchange
Model navigasi (menjana UI navigasi);
Tajuk dokumen dikemas kini;
404 pemprosesan penghalaan;
Sekarang, mari kita lihat ciri penghalaan yang membawa Angular 2.0 ke tahap yang baharu:
Sub-laluan akan mengubah setiap komponen aplikasi menjadi aplikasi yang lebih kecil dengan menyediakan laluan mereka sendiri, yang akan membantu merangkum set ciri keseluruhan aplikasi.
Pengaktifan skrin
Ini akan membantu pembangun mengawal kitaran hayat navigasi dengan lebih baik melalui set panggilan balik boleh*: bolehAktifkan - benarkan/sekat navigasi ke pengawal baharu;
aktifkan - balas navigasi yang berjaya ke pengawal baharu;
bolehNyahaktifkan - Benarkan/sekat navigasi dari pengawal lama;
Panggil balik ini akan membolehkan pembangun mengembalikan nilai Boolean atau arahan (untuk kawalan peringkat rendah).
Semua logik ini dibina menggunakan struktur saluran paip, menjadikannya sangat mudah untuk menambah langkah anda sendiri pada saluran paip atau mengalih keluar bahan lalai. Selain itu, sifat tak segeraknya akan membolehkan pembangun menggunakan permintaan pelayan untuk mengesahkan atau memuatkan data untuk pengawal, walaupun ini masih dirancang.
Log
Angular 2.0 akan menyertakan perkhidmatan pengelogan yang dipanggil diary.js - ciri yang sangat berguna untuk mengukur masa anda dihabiskan dalam aplikasi anda.
Skop
$scope akan dialih keluar daripada Angular 2.0 dan digantikan dengan kelas ES6.
Kesimpulan
Apabila tarikh keluaran semakin hampir, keterujaan dan buzz di sekitar Angular 2.0 akan bertambah hebat. Adakah melanggar perubahan adalah perkara yang baik? Kami tidak mempunyai cara untuk mengetahuinya, tetapi lawan difahamkan gementar memandangkan kekurangan rancangan untuk berpindah. Keterujaan datang serta merta. Tetapi kerana ia akan datang, apa yang boleh kita lakukan ialah menyambutnya secara aktif.
Kandungan di atas memperkenalkan anda kepada ciri baharu AngularJS 2.0 Saya harap ia akan membantu anda!