E-book details

Angular w akcji

Angular w akcji

Jeremy Wilken

Ebook

Framework Angular od wielu lat jest jednym z najważniejszych narzędzi do rozwijania średnich i dużych aplikacji internetowych. Co istotne, aplikacje te bez problemu działają w każdej nowoczesnej przeglądarce, a także na platformach mobilnych. Obecnie Angular jest dojrzałą, stabilną i wciąż ewoluującą technologią, a w kolejnych wydaniach frameworka pojawiają się nowe, ułatwiające pracę funkcje. Aplikacje napisane w Angularze opierają się na hierarchicznym systemie komunikujących się komponentów i na dobrze zbudowanych interfejsach API. Przejrzystość i zrozumiałe zasady rządzące tym systemem sprawiają, że nauka posługiwania się Angularem przychodzi szybko i jest bardzo satysfakcjonująca.

Ta książka jest przeznaczona dla programistów, którzy chcą możliwie szybko zacząć budować poprawne aplikacje w Angularze i bezproblemowo uruchamiać je w środowisku produkcyjnym. Podręcznik został napisany w sposób, który pozwala na natychmiastowe rozpoczęcie kodowania i zrozumienie - niemal mimochodem - tak zaawansowanych technik jak testowanie, wstrzykiwanie zależności czy regulowanie wydajności. W książce położono nacisk na korzystanie z TypeScriptu i ES2015 oraz na tworzenie poprawnego kodu zgodnie z najlepszymi praktykami. Nie zabrakło licznych wskazówek i opisu nieoczywistych, ale bardzo pomocnych technik pracy. Dzięki temu szybko wykorzystasz potencjał Angulara do pisania wydajnych, odpornych i bezpiecznych aplikacji!

Najważniejsze zagadnienia:

  • Przegląd architektury Angulara i jego funkcji
  • Zasady tworzenia aplikacji w Angularze
  • Komponenty i interakcje między nimi
  • Usługi, wstrzykiwanie zależności i wzorce nawigacyjne
  • Testowanie, debugowanie i wdrażanie aplikacji

Oto Angular: ambitne narzędzie dla profesjonalistów!

 

Przedmowa 11

 

Podziękowania 13

O książce 15

O autorze 19

Rozdział 1. Angular - nowoczesna platforma internetowa 21

  • 1.1. Dlaczego warto wybrać Angular? 22
  • 1.2. Czego się nauczysz z tej książki 23
  • 1.3. Podróż od AngularJS do Angulara 24
  • 1.4. Angular - platforma, a nie framework 26
    • 1.4.1. CLI Angulara 26
    • 1.4.2. Renderowanie serwerowe i kompilator 27
    • 1.4.3. Możliwości mobilne i desktopowe 29
    • 1.4.4. Biblioteki interfejsu użytkownika 30
  • 1.5. Architektura komponentowa 32
    • 1.5.1. Najważniejsze cechy komponentów 34
    • 1.5.2. Shadow DOM 36
    • 1.5.3. Szablony 37
    • 1.5.4. Moduły JavaScriptu 39
  • 1.6. Nowoczesny JavaScript i Angular 40
    • 1.6.1. Strumienie obserwowalne 43
  • 1.7. TypeScript i Angular 44
  • Podsumowanie 46

Rozdział 2. Twoja pierwsza aplikacja Angular 47

  • 2.1. Przegląd projektu z tego rozdziału 48
  • 2.2. Konfigurowanie projektu 50
  • 2.3. Rusztowanie bazowej aplikacji 51
  • 2.4. Jak Angular renderuje aplikację bazową 53
    • 2.4.1. Komponent App 53
    • 2.4.2. Moduł App 54
    • 2.4.3. Początkowe ładowanie aplikacji 55
  • 2.5. Budowanie usług 57
  • 2.6. Tworzenie pierwszego komponentu 60
  • 2.7. Komponenty wykorzystujące komponenty i usługi 66
  • 2.8. Komponenty z formularzami i ze zdarzeniami 69
  • 2.9. Routing aplikacji 73
  • Podsumowanie 75

Rozdział 3. Najważniejsze elementy aplikacji 77

  • 3.1. Encje w Angularze 79
    • 3.1.1. Moduły 79
    • 3.1.2. Komponenty 81
    • 3.1.3. Dyrektywy 82
    • 3.1.4. Potoki 85
    • 3.1.5. Usługi 86
  • 3.2. Jak Angular zaczyna renderować aplikację 87
  • 3.3. Rodzaje kompilatorów 89
  • 3.4. Wstrzykiwanie zależności 89
  • 3.5. Wykrywanie zmian 90
  • 3.6. Wyrażenia szablonów i wiązania 91
    • 3.6.1. Interpolacja 93
    • 3.6.2. Wiązania właściwości 94
    • 3.6.3. Specjalne wiązania właściwości 95
    • 3.6.4. Wiązanie atrybutów 96
    • 3.6.5. Wiązanie zdarzeń 97
  • Podsumowanie 98

Rozdział 4. Podstawy komponentów 101

  • 4.1. Konfigurowanie przykładu 102
    • 4.1.1. Przygotowanie kodu 103
  • 4.2. Kompozycja i cykl życia komponentu 104
    • 4.2.1. Cykl życia komponentu 106
    • 4.2.2. Zaczepy cyklu życia 107
    • 4.2.3. Zagnieżdżanie komponentów 109
  • 4.3. Rodzaje komponentów 110
  • 4.4. Tworzenie komponentu Data 113
  • 4.5. Używanie wejść z komponentami 116
    • 4.5.1. Podstawy wejść 117
    • 4.5.2. Przechwytywanie wejść 120
  • 4.6. Rzutowanie zawartości 122
  • Podsumowanie 128

Rozdział 5. Zaawansowane aspekty komponentów 129

  • 5.1. Wykrywanie zmian i optymalizacje 130
  • 5.2. Komunikacja między komponentami 134
    • 5.2.1. Zdarzenia wyjściowe i zmienne szablonów 135
    • 5.2.2. Odwoływanie się do komponentów za pomocą ViewChild 137
  • 5.3. Stylizacja komponentów i tryby hermetyzacji 138
    • 5.3.1. Dodawanie stylów do komponentu 139
    • 5.3.2. Tryby hermetyzacji 141
  • 5.4. Dynamiczne renderowanie komponentów 145
    • 5.4.1. Używanie okna modalnego ng-bootstrap dla komponentów dynamicznych 145
    • 5.4.2. Dynamiczne tworzenie komponentu i jego renderowanie 149
  • Podsumowanie 153

Rozdział 6. Usługi 155

  • 6.1. Konfigurowanie przykładu 156
    • 6.1.1. Pobieranie kodu 158
    • 6.1.2. Przykładowe dane 158
  • 6.2. Tworzenie usług Angulara 159
  • 6.3. Wstrzykiwanie zależności i drzewa wstrzykiwaczy 164
  • 6.4. Usługi bez wstrzykiwania zależności 168
  • 6.5. Korzystanie z usługi HttpClient 169
    • 6.5.1. Interfejs HttpInterceptor 173
  • 6.6. Usługi pomocnicze 176
  • 6.7. Usługi udostępniania 180
  • 6.8. Usługi dodatkowe 184
  • Podsumowanie 186

Rozdział 7. Routing 187

  • 7.1. Konfigurowanie przykładu 188
  • 7.2. Definiowanie tras i konfiguracja routera 190
  • 7.3. Moduły funkcyjne i routing 193
  • 7.4. Parametry trasy 194
    • 7.4.1. Tworzenie linków w szablonach za pomocą dyrektywy routerLink 195
    • 7.4.2. Uzyskiwanie dostępu do parametrów trasy w komponencie 196
  • 7.5. Trasy podrzędne 198
  • 7.6. Trasy drugorzędne 201
    • 7.6.1. Definiowanie trasy drugorzędnej 202
    • 7.6.2. Nawigacja między trasami drugorzędnymi 204
    • 7.6.3. Zamykanie trasy drugorzędnej i routing programowy 205
  • 7.7. Zabezpieczanie tras w celu ograniczenia dostępu 205
  • 7.8. Leniwe ładowanie 211
  • 7.9. Najlepsze praktyki dotyczące routingu 214
  • Podsumowanie 215

Rozdział 8. Budowanie niestandardowych dyrektyw i potoków 217

  • 8.1. Konfigurowanie przykładu 219
  • 8.2. Tworzenie niestandardowych dyrektyw 219
    • 8.2.1. Tworzenie dyrektywy atrybutów 221
    • 8.2.2. Modyfikowanie komponentu za pomocą dyrektywy ze zdarzeniami 223
    • 8.2.3. Tworzenie dyrektywy strukturalnej 226
  • 8.3. Tworzenie niestandardowych potoków 229
    • 8.3.1. Tworzenie czystego potoku 230
    • 8.3.2. Tworzenie nieczystego potoku 232
  • Podsumowanie 236

Rozdział 9. Formularze 237

  • 9.1. Konfigurowanie przykładu 238
    • 9.1.1. Wstępny przegląd aplikacji 240
  • 9.2. Formularze oparte na szablonach 241
    • 9.2.1. Wiązanie danych modelu z wejściami za pomocą dyrektywy NgModel 241
    • 9.2.2. Walidacja kontrolek formularza za pomocą dyrektywy NgModel 243
    • 9.2.3. Niestandardowa walidacja za pomocą dyrektyw 246
    • 9.2.4. Obsługa zdarzeń przesyłania lub zdarzeń anulowania 249
  • 9.3. Formularze reaktywne 251
    • 9.3.1. Definiowanie formularza 252
    • 9.3.2. Implementowanie szablonu 254
    • 9.3.3. Obserwowanie zmian 255
    • 9.3.4. Niestandardowe walidatory z formularzami reaktywnymi 256
    • 9.3.5. Obsługa zdarzeń przesyłania lub zdarzeń anulowania 260
    • 9.3.6. Które podejście do formularzy jest lepsze? 264
  • 9.4. Niestandardowe kontrolki formularzy 265
  • Podsumowanie 271

Rozdział 10. Testowanie aplikacji 273

  • 10.1. Narzędzia testowe i konfiguracja przykładu 274
    • 10.1.1. Narzędzia do testowania 275
  • 10.2. Testy jednostkowe 276
    • 10.2.1. Anatomia testów jednostkowych 276
    • 10.2.2. Testowanie potoków 277
    • 10.2.3. Testowanie usług, stuby i symulowanie żądań HTTP 279
    • 10.2.4. Testowanie komponentów i korzystanie z modułów testujących 285
    • 10.2.5. Testowanie dyrektyw 293
  • 10.3. Testy e2e 297
  • 10.4. Dodatkowe strategie testowania 302
    • 10.4.1. Ile testów wystarczy? 303
    • 10.4.2. Kiedy mam pisać testy? 304
    • 10.4.3. Co mam napisać, e2e czy testy jednostkowe? 304
    • 10.4.4. A co, jeśli nie mam czasu na pisanie testów? 305
    • 10.4.5. A co z innymi rodzajami testów? 305
  • Podsumowanie 306

Rozdział 11. Angular w środowisku produkcyjnym 309

  • 11.1. Kompilowanie Angulara dla środowiska produkcyjnego 310
    • 11.1.1. Kompilacja produkcyjna 310
    • 11.1.2. Optymalizacja dla przeglądarek docelowych 311
    • 11.1.3. Progresywne aplikacje internetowe 312
    • 11.1.4. Internacjonalizacja (i18n) 312
    • 11.1.5. Używanie alternatywnych narzędzi kompilacji 313
    • 11.1.6. Renderowanie po stronie serwera lub renderowanie wstępne 314
    • 11.1.7. Potoki kompilacji 314
  • 11.2. Wybór architektury Angulara 315
    • 11.2.1. Leniwe ładowanie tras 315
    • 11.2.2. Ograniczanie zewnętrznych zależności 316
    • 11.2.3. Bycie na bieżąco 319
  • 11.3. Wdrożenie 319
  • Podsumowanie 321

Dodatek A. Aktualizacja z AngularJS do Angulara 323

Dodatek B. Komunikacja między komponentami Angular 329

Skorowidz 331

  • Title: Angular w akcji
  • Author: Jeremy Wilken
  • Original title: Angular in Action
  • Translation: Lech Lachowski
  • ISBN: 978-83-283-4799-1, 9788328347991
  • Date of issue: 2019-03-12
  • Format: Ebook
  • Item ID: angakc
  • Publisher: Helion