β
@NgModule β Standalone component
β
*ngFor, *ngIf β Modern control flow: @if, @for
β
Parent emits updates through writableSignal() following the Modern `Signal-Based Component Architecture Pattern` (Service (Shared State) ββ Parent (Local State) ββ Child (Pure Input))
β
ngOnInit() + subscribe() + contructor based inject β Use reactive Signals + computed()
β
contruct-based DI injection β inject(HttpClient)
β
Better Ts notation β Protected + readonly template properties for protection and mutability control
β
Two-Way Binding (Old Way) β signal-input-pattern
When passing values from a P -> C component using the
@Input
,these values are not available in the constructor
= Avoids running Angular-specific logic or accessing @Input properties, as they are not yet set.
If you need to react to changes in @Input values beyond initialization, consider using the
ngOnChanges()
lifecycle hook
- Called first, before any Angular lifecycle hooks.
- Used to initialise the component instance.
- Runs before Angular has fully initialized the component.
Not safe access @Input values
- called after the constructor, after the first ngOnChanges()
Safe for access @Input
values- Runs after the constructor and after Angular sets up the component's bindings.