Skip to content

[Feat] Migrate Components to the Newest Angular Standard #9552

@rishi-rj-s

Description

@rishi-rj-s

Currently, the component architecture relies heavily on legacy Angular standards (e.g., standard @Input()/@Output() decorators, verbose RxJS Observable chains, constructor injection, and legacy structural directives). By migrating to the latest Angular reactivity and authoring features (Signals, signal-based inputs/outputs/queries, the new built-in control flow, and inject()), we will drastically improve code quality, reduce boilerplate, and optimize change detection across the massive application.
This would be a massive undertaking, but moving entirely to these new primitives will significantly benefit performance and maintainability.
Examples of planned migrations:

  • Inputs: @Input() data: string; ➡️ data = input<string>();
  • Outputs: @Output() event = new EventEmitter<void>(); ➡️ event = output<void>();
  • Queries: @ViewChild('myRef') ref: ElementRef; ➡️ ref = viewChild<ElementRef>('myRef');
  • State: data$: Observable<string>; ➡️ data = signal<string>(''); (or toSignal())
  • Lifecycle / Reactivity: ngOnChanges() ➡️ computed() or effect()
  • DI: constructor(private router: Router) ➡️ private router = inject(Router);

Note: I can start working on this as soon as it's approved!

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Task.

Projects

Status
To do

Relationships

None yet

Development

No branches or pull requests

Issue actions