Angular (5.5 h)
Signal (+1 h)
Details
- Accepting data with input properties
- Custom events with outputs
- Content projection with ng-content
- "You cannot add directives, styles, or arbitrary attributes to
<ng-content>
." - "You should not conditionally include
<ng-content>
withngIf
,ngFor
, orngSwitch
. For conditional rendering of component content, see Template fragments."
- "You cannot add directives, styles, or arbitrary attributes to
- Host elements
- Lifecycle
- During initialization:
constructor
-change detection->ngOnChanges
->ngOnInt
->ngDoCheck
->ngAfterXxxInit
->ngAfterXxxChecked
-rendering->afterRender
- Subsequent updates: change detection
ngOnChanges
->ngDoCheck
->ngAfterXxxChecked
-rendering->afterRender
- During initialization:
Feature preview - Developer guides
Details
- Signal
- Writable and computed signals
- Effects
- Signal inputs
- Optional/required Inputs
- Alias
- Model inputs
Components (+0.5 h)
Details
- Anatomy of components
- Importing and using components
- "The Angular team recommends using standalone components for all new development."
- Selectors
- Selector prefixes - "The Angular team recommends using a short, consistent prefix for all the custom components defined inside your project."
- When to use an attribute selector - "You should consider an attribute selector when you want to create a component on a standard native element."
- Styling
ViewEncapsulation.Emulated
: scoped, but other global styles can affectViewEncapsulation.ShadowDom
: scoped, and global styles cannot affectViewEncapsulation.None
: global
v17 Tutorial (+1.5 h)
Details
- Composing Components
imports
andselector
- Control Flow in Components (Template syntax)
@if
,@else
@for
,track
- Deferrable Views
@defer
withon viewport
@placeholder
withminimum
@loading
withminimum
andafter
- Optimizing images
NgOptimizedImage
andngSrc
- layout shift
priority
for LCP element- image loader
- Two-way binding
[()]
, aka "banana in a box"[(ngModel)]
inFormsModule
- Reactive forms
<form [formGroup]=...
<form (ngSubmit)=...
Validators
andform.valid
- DI (Dependency injection)
- Creating an injectable service by
@injectable
- Inject
inject()
- constructor-based DI
- Creating an injectable service by
- Pipes
- Built-in pipes:
DatePipe
,DecimalPipe
,CurrencyPipe
, ... - Custom pipes with
@Pipe
- Built-in pipes:
Homes tutorial (+2.5 h)
First App Tutorial - Angular Homes
Details
- Component
- Metadata
@Input
decorator - component props- Prop binding -
[attribute]="value"
- Event binding -
(event)="handler"
- Template reference variable -
#var
- Interpolation -
*ngFor
(CommonModule)
- Interface
- Angular services (@angular/core)
- Dependency injection
- Angular router (@angular/router)
- ActivetedRoute (
route.snapshot.params['id']
) <router-outlet>
- ActivetedRoute (
- ReactiveFormsModule
- HTTP communication