✅ @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 @Inputvalues- Runs after the constructor and after Angular sets up the component's bindings.
