What's new in Angular 16: A Developer Guide to Angular 16 New Features

Estimated study time: 8 minutes. The release that previewed Angular's reactive future.

Angular 16 previewed some of the biggest architectural shifts in the framework's recent history, most notably the introduction of signals.

Signals (Developer Preview)

Signals are a new reactive primitive for tracking and propagating state changes with fine-grained precision, independent of Zone.js-based change detection.

const count = signal(0);

increment() {
  count.set(count() + 1);
}

Required Inputs

Component inputs could now be marked as required, catching missing bindings at compile time instead of silently rendering with undefined.

@Input({ required: true }) userId!: string;

Non-Destructive Full App Hydration

Server-side rendered Angular apps gained non-destructive hydration, reusing existing DOM nodes on the client instead of tearing down and re-rendering the whole page — improving load performance and reducing flicker.

Router Input Binding

Route parameters could now be bound directly to component inputs, removing the need to manually subscribe to ActivatedRoute in many simple cases.

{ path: 'user/:id', component: UserComponent }

// In UserComponent, with withComponentInputBinding() enabled:
@Input() id!: string;
💡 Tip: Signals were still in developer preview at this stage — great to experiment with, but check current documentation before relying on the exact API in production, since it continued to evolve in later releases.

Ready to go beyond the basics?

Get hands-on training, live mentorship, and placement support with Uncodemy's Angular Training Course.

Explore Angular Training Course →