Enterprise SPA with Angular & RxJS.
2 topics
Angular components: TypeScript class + HTML template + CSS styles. Template syntax: interpolation {{}}, property binding [prop], event binding (event), two-way [(ngModel)]. Directives: *ngIf, *ngFor, [ngClass], [ngStyle]. Pipes for data transformation. Component lifecycle hooks: ngOnInit, ngOnChanges, ngOnDestroy. Standalone components (no NgModules needed in Angular 17+).
2 resources
Services: @Injectable classes for shared logic and data. Angular's DI system: providedIn root (singleton), component-level providers, and injection tokens. HttpClient for API calls (returns Observables). Interceptors for auth headers and error handling. Signals (Angular 16+): reactive primitives that simplify change detection — signal(), computed(), effect().
RxJS: Observables for async data streams. Key operators: map, filter, switchMap, mergeMap, catchError, debounceTime, distinctUntilChanged, combineLatest, forkJoin. Angular Router: route config, lazy loading (loadComponent), guards (canActivate, canDeactivate), resolvers, and nested routes.
State: NgRx (Redux-inspired: store, actions, reducers, effects, selectors) or lightweight alternatives (Akita, Elf, signal-based stores). Testing: Jasmine + Karma (unit tests), TestBed for component testing, HttpClientTestingModule for service tests, Cypress/Playwright for E2E. Angular CLI: ng generate, ng build, ng test.