Sitemap
Press enter or click to view image in full size

No More @Input() + @Output(): Angular 20 Embraces Native Bindings with Signals

5 min readJul 28, 2025

--

Angular 20 has arrived, and with it comes one of the most exciting evolutions in component communication: native inputs and outputs. But there’s more. This release also deepens Angular’s embrace of Signals, the reactive primitive introduced in Angular 16.

Now, thanks to Angular 20’s updated component model, you can build components using native bindings and Signals — without ever touching @Input() or @Output(). This combo leads to cleaner, more reactive, and more maintainable code.

In this post, we’ll break down what this means, how to use it, and why this change matters for the future of Angular development.

🚫 The Problem with @Input() and @Output()

Since Angular 2, we’ve relied on @Input() and @Output() decorators to pass data into and out of components:

@Input() title: string;
@Output() clicked = new EventEmitter<void>();

While functional, these decorators have several drawbacks:

  • They add boilerplate.
  • They’re Angular-specific, unlike standard DOM attributes and events.
  • They aren’t reactive on their own — meaning you still need RxJS or Signals for reactivity.

--

--

Sumit kumar Singh

Written by Sumit kumar Singh

📚 HTML, Angular, React, and JavaScript 🧑‍💻 Tips & tricks

Responses (2)