O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Angular , 2nd Edition

Book Description

Angular ist ein äußerst populäres Open-Source-Framework von Google, das Webentwickler wirkungsvoll dabei unterstützt, die Komplexität moderner JavaScript- und Single-Page-Anwendungen (SPA) im Griff zu behalten.Das Buch wurde in der zweiten Auflage durchgehend überarbeitet und aktualisiert. Es ist auf die Neuentwicklung von Angular ab der Version 2 abgestimmt. Anhand eines umfassenden Beispielprojekts werden zunächst die Grundlagen des komponentenorientierten Frameworks vermittelt. Anschließend gehen die Autoren auf weiterführende Themen wie Build-Automatisierung, Security, Internationalisierung oder Performance-Tuning ein.

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Inhaltsverzeichnis
  5. Vorwort
    1. Zielgruppe
    2. Zielsetzung des Buchs
    3. Quellcodebeispiele, Online-Services und Errata
    4. Konventionen in diesem Buch
    5. Aufbau des Buchs
    6. Schulungen und Beratung
    7. Danksagungen
  6. 1 Projekt-Setup
    1. Angular CLI
    2. Die CLI installieren
    3. Ein Projekt mit der CLI generieren
    4. Den Port des Entwicklungsservers festlegen
    5. Build mit CLI
    6. Projektstruktur von CLI-Projekten
    7. Bootstrap installieren
    8. Alternativen zur CLI
    9. Eject
    10. Seed-Projekte
    11. Werkzeuge
    12. Überlegungen zur Entwicklungsumgebung
    13. Browser
    14. Das Caching verhindern
    15. Zusammenfassung
  7. 2 Erste Schritte mit TypeScript
    1. Motivation
    2. Erste Schritte mit TypeScript
    3. Hallo Welt!
    4. Variablen deklarieren
    5. Ausgewählte Datentypen in TypeScript
    6. Ein erstes Objekt samt Modul
    7. Klassen
    8. Funktionen und Lambda-Ausdrücke
    9. Interfaces und Vererbung
    10. Interfaces
    11. Klassenvererbung
    12. Type Assertion („Type Casting“)
    13. Abstrakte Klassen
    14. Zugriff auf eine Basis-Klasse
    15. Ausgewählte Sprachmerkmale
    16. Getter und Setter
    17. Generics
    18. Exceptions
    19. Strikte Null-Prüfungen
    20. Asynchrone Operationen
    21. XmlHttpRequest
    22. Callbacks
    23. Promises
    24. Ausblick auf Observables
    25. Zusammenfassung
  8. 3 Erste Schritte mit Angular
    1. Eine erste Angular-Komponente
    2. Dateien für die Komponente anlegen
    3. Eine Klasse für die Komponente
    4. Auf das Backend zugreifen
    5. Templates und die Datenbindung
    6. Ein erstes Modul
    7. Bootstrapping
    8. Anwendung ausführen
    9. Zusammenfassung
  9. 4 Komponenten und Datenbindung
    1. Datenbindung in Angular
    2. Rückblick auf AngularJS 1.x
    3. Property-Binding
    4. Event-Bindings
    5. Das Zusammenspiel von Property- und Event-Bindings
    6. Bindings im Template
    7. Two-Way-Bindings
    8. Eigene Komponenten mit Datenbindung
    9. Eine Komponente mit Property-Binding
    10. Komponenten mit Event-Bindings
    11. Komponenten mit Two-Way-Bindings
    12. Life-Cycle-Hooks
    13. Ausgewählte Hooks
    14. Experiment mit Life-Cycle-Hooks
    15. DateControl mit Life-Cycle-Hooks
    16. Zusammenfassung
  10. 5 Pipes
    1. Überblick
    2. Built-in Pipes
    3. Eigene Pipes
    4. Pure Pipes
    5. Implementierung einer einfachen Pipe
    6. Pipes registrieren und nutzen
    7. Zusammenfassung
  11. 6 Services und Dependency Injection
    1. Austauschbarkeit dank Dependency Injection
    2. Services implementieren und nutzen
    3. Ein erster Service
    4. Einen Service global registrieren
    5. Einen Service nutzen
    6. Einen Service lokal registrieren
    7. Arten von Providern
    8. Token
    9. useClass
    10. useValue
    11. useFactory
    12. useExisting
    13. multi
    14. Konstanten als Token
    15. Zusammenfassung
  12. 7 Module
    1. Motivation
    2. Eine Angular-typische Modulstruktur
    3. Shared Modules
    4. Feature-Modules
    5. Root-Modules
    6. Module reexportieren
    7. Zusammenfassung
  13. 8 Routing
    1. Überblick
    2. Routing und Platzhalter
    3. Routen einsetzen
    4. Erste Schritte mit dem Router
    5. Routing-Konfiguration einrichten
    6. Root-Komponente einrichten
    7. AppModule anpassen
    8. Strukturierung mit Modulen
    9. Hierarchisches Routing mit Child-Routes
    10. Überblick zu Child-Routes
    11. Child-Routes implementieren
    12. Parametrisierte Routen
    13. Parameter an Routen übergeben
    14. QueryString und Hash-Fragment
    15. Lazy Loading von Routen
    16. Routen für das Lazy Loading einrichten
    17. Lazy Loading und Webpack
    18. Lazy Loading im Browser nachvollziehen
    19. Lazy Loading und Shared Modules
    20. Preloading
    21. Aux-Routes
    22. Guards
    23. Das Aktivieren von Routen verhindern
    24. Das Aktivieren von untergeordneten Routen verhindern
    25. Das Laden von Modulen verhindern
    26. Das Deaktivieren einer Komponente verhindern
    27. Events
    28. Resolver
    29. Zusammenfassung
  14. 9 Formulare und Validierung
    1. Template-getriebene Formulare
    2. FormsModule einbinden
    3. Eingaben validieren
    4. Zugriff auf den Zustand des Formulars
    5. Bedingte Formatierung von Eingabefeldern
    6. Eigene Validierungsdirektiven
    7. Parametrisierbare Validierungsregeln
    8. Asynchrone Validatoren
    9. Die Komponente zum Präsentieren von Validierungsfehlern
    10. Die Standardsteuerelemente von HTML nutzen
    11. Geschachtelte Formulare
    12. Multi-Field-Validatoren
    13. Reaktive Formulare
    14. Modul einbinden
    15. Das Formular mit einem Objektgraphen beschreiben
    16. Einen Objektgraphen an ein Formular binden
    17. Validatoren
    18. Wiederholgruppen mit FormArray
    19. Wiederholgruppen validieren
    20. Dynamische Formulare
    21. In die Datenbindung mit Value-Accessoren eingreifen
    22. Ausgaben formatieren und Eingaben parsen
    23. Eigene Formular-Steuerelemente
    24. Zusammenfassung
  15. 10 Internationalisierung
    1. Übersetzungen mit Angular
    2. ng-xi18n ohne die Angular CLI einrichten
    3. Texte markieren
    4. Dynamische Übersetzungen
    5. Integration in die Applikation
    6. Die Alternative ngx-translate
    7. Die Library einrichten
    8. Datenquelle bestimmen
    9. Internationalisierung mit Direktiven und Pipes
    10. Dynamische Übersetzungen mit Angular-Pipes
    11. Sprachwechsel mit TranslateService
    12. Zusammenfassung
  16. 11 RxJS und Angular
    1. Reactive Extensions für JavaScript
    2. Observables mit Angular
    3. Observable erstellen und mit einem Observer arbeiten
    4. Die Async-Pipe
    5. Ein Observable über unsubscribe entsorgen
    6. Cold vs. Hot Observables
    7. Type-Ahead-Suche mit Subject
    8. Subject zur Event-Steuerung nutzen
    9. Marble-Diagramme verstehen
    10. Zusammenfassung
  17. 12 Performanceoptimierung mit OnPush, Immutables und Observables
    1. Performanceoptimierung mit Immutables
    2. Arbeiten mit Immutables
    3. Sprachkonstrukte für Immutables in TypeScript
    4. Immutables und Datenbindung
    5. Performanceoptimierung mit Observables
    6. Observables und Datenbindung
    7. Zusammenfassung
  18. 13 Details zu Komponenten und Direktiven
    1. Weiterführende Aspekte von Komponenten
    2. Content Projection
    3. Parent-Komponenten referenzieren
    4. Handles
    5. View vs. Content
    6. Kommunikation über Services
    7. View-Provider
    8. Komponentenvererbung
    9. Attribut-Direktiven
    10. Direktiven definieren
    11. Auf Ereignisse mit HostListener reagieren
    12. Strukturelle Direktiven
    13. Templates und Container
    14. Microsyntax
    15. Templates zur Laufzeit auswählen
    16. Templates referenzieren
    17. Dynamisch Komponenten erzeugen
    18. Zusammenfassung
  19. 14 Animationen
    1. Grundlagen
    2. Konfiguration der Polyfills
    3. Animationen mit Trigger, State und Transition
    4. trigger und state nutzen
    5. Zustandswechsel mit Transition
    6. Einfache Effekte definieren
    7. Vorbereitung
    8. Berechnete CSS-Werte und Easing
    9. Animationen mit ngIf
    10. Komplexe Animationen abbilden
    11. Erweiterte Effekte mit Keyframes
    12. Gleichzeitige Animationen mit Group
    13. Animation-Callbacks
    14. Touch-Gestensteuerung mit HammerJS
    15. Zusammenfassung
  20. 15 Authentifizierung und Autorisierung
    1. OAuth 2 und OpenID Connect
    2. OAuth 2
    3. Benutzer mit OpenID Connect authentifizieren
    4. JSON Web Token
    5. OAuth 2- und OIDC-Flows
    6. Angular konfigurieren
    7. OAuth2-Bibliothek einrichten und konfigurieren
    8. Login mit Implicit Flow
    9. Login mit Resource Owner Password Credentials Flow
    10. Zugriff auf die Web-API mit Access Token
    11. Zusammenfassung
  21. 16 Redux mit @ngrx/store
    1. Motivation
    2. Redux
    3. Überblick über @ngrx/store
    4. Fallbeispiel
    5. Single Immutable State Tree
    6. Reducer
    7. Bootstrapping
    8. Komponente
    9. Template
    10. Undo/Redo
    11. Zeitreisende Debugger
    12. Zusammenfassung
  22. 17 Testing
    1. Testbausteine
    2. Jasmine
    3. Anatomie eines Jasmine-Tests
    4. Test-Runner
    5. Unit-Tests mit Karma
    6. Installation und Konfiguration
    7. Ein erster Unit-Test
    8. Debugging über Source Maps
    9. Komponenten testen
    10. Komplexe Komponenten vorbereiten
    11. Attribut-Direktiven
    12. Asynchrone Tests und der Http-Service
    13. Pipes
    14. Code-Coverage-Report
    15. End-2-End-Tests mit Protractor
    16. Asynchrone Befehle und der WebDriver-ControlFlow
    17. Installation und Konfiguration
    18. E2E-Tests mit Jasmine
    19. Jasmine-Reporter
    20. Zusammenfassung
  23. 18 Tools und erweiterter Projektaufbau
    1. Projektaufbau allgemein
    2. Style Guide
    3. Projekte mit Webpack
    4. Einstiegspunkt festlegen
    5. Loader definieren
    6. Externe Libraries und Dateien einbinden
    7. Workflow mit Webpack
    8. Konfiguration über Umgebungsvariablen steuern
    9. Produktivkonfigurationen mit webpack-merge auslagern
    10. Entwicklermodus mit Webpack-Dev-Server
    11. Ahead-of-Time-Kompilierung
    12. Phase 1: Den Angular-Compiler über ngc einrichten
    13. Phase 2: Mit Webpack ein Bundle generieren
    14. Sauberer Code mit TSLint
    15. Installation und Konfiguration
    16. Erweitertes Regelwerk durch Codelyzer
    17. Debugging mit Augury
    18. Zusammenfassung
  24. 19 Serverseitiges Rendering
    1. Serverseitiges Rendering implementieren
    2. Benötigte Pakete
    3. Das Root-Module für das serverseitige Rendering
    4. Das Root-Module für den clientseitigen Betrieb
    5. Die Express-Engine für Angular
    6. Den Express-Server implementieren
    7. Build und Start
    8. Webpack-Konfiguration
    9. Start des Servers
    10. Zusammenfassung
  25. Index
  26. Über die Autoren
  27. Fußnoten