Angular jest napisany w TypeScript, który zapewnia statyczne typowanie i nowoczesne funkcje językowe, co ułatwia tworzenie i utrzymanie dużych projektów.
W przeciwieństwie do AngularJS (Angular 1.x), Angular od wersji 2 został całkowicie przebudowany i oferuje zupełnie nową architekturę oraz podejście do budowy aplikacji.
Kluczowe cechy Angulara (2+)
- Komponentowa architektura Angular opiera się na komponentach, które łączą logikę, szablony HTML i style CSS w jednym miejscu. Ułatwia to modularność i ponowne wykorzystanie kodu.
- TypeScript Angular został napisany w TypeScript, co pozwala na korzystanie z nowoczesnych funkcji JavaScript oraz statycznego typowania, które zwiększa bezpieczeństwo kodu.
- Modułowość Angular korzysta z systemu modułów (NgModule), który umożliwia podział aplikacji na logiczne części. Moduły takie jak BrowserModule, HttpClientModule czy FormsModule są podstawą aplikacji.
- Jednokierunkowy przepływ danych i powiązanie danych Angular wspiera jednokierunkowe oraz dwukierunkowe wiązanie danych (One-Way Binding i Two-Way Binding), co pozwala na dynamiczną synchronizację modelu i widoku.
- RxJS i programowanie reaktywne Angular intensywnie wykorzystuje RxJS do obsługi zdarzeń asynchronicznych, takich jak żądania HTTP, co zapewnia większą kontrolę nad strumieniami danych.
- Routing i Lazy Loading Angular wbudowany mechanizm routingu umożliwia nawigację między widokami, a funkcja Lazy Loading pozwala ładować moduły aplikacji na żądanie, co przyspiesza czas ładowania strony.
- Dependency Injection (DI) Angular oferuje zaawansowany system wstrzykiwania zależności, który ułatwia zarządzanie usługami i komponentami w aplikacji.
- Angular CLI Narzędzie wiersza poleceń, które automatyzuje tworzenie, testowanie i budowanie aplikacji, co znacznie przyspiesza proces developmentu.
- Style i animacje Angular obsługuje natywne style CSS, SCSS oraz animacje z wbudowaną biblioteką @angular/animations.
- Wysoka wydajność
- Ahead-of-Time Compilation (AOT): Kompiluje kod aplikacji do JavaScriptu przed jego uruchomieniem w przeglądarce, co skraca czas ładowania.
- Change Detection: Mechanizm wykrywania zmian optymalizuje aktualizację widoków.
Minusy Angulara
- Stroma krzywa nauki: Ze względu na bogatą funkcjonalność i złożoność frameworka, nowi użytkownicy mogą mieć trudności z jego opanowaniem.
- Duży rozmiar projektu początkowego: Domyślna konfiguracja Angulara generuje aplikacje większe w porównaniu do lekkich frameworków, takich jak Vue.js czy React.
- Rozbudowana struktura kodu: Nawet dla prostych funkcjonalności wymagane są dodatkowe pliki i konfiguracje.