Angular continues to evolve with a strong focus on performance, developer productivity, and reduced bundle size. Here's a version-wise recap from Angular 8 onwards — covering the most relevant features for developers.
Angular 8
- Ivy Engine (Preview) – New rendering engine
- Differential Loading – Generates separate bundles for modern & legacy browsers
- Lazy Loading with Dynamic Imports
loadChildren: () => import('./module').then(m => m.Module)
-
Web Worker Support (
ng generate web-worker) 👉 Foundation for future major upgrades.
Angular 9
- Ivy Rendering Engine becomes default
- Smaller bundle sizes
- Faster compilation
- Better debugging & type checking
- Improved Test Performance 👉 A major change — Ivy officially replaces View Engine.
Angular 10
- Smaller, cleaner package size
- Optional chaining & nullish coalescing (TS 3.9)
user?.address?.city
value ?? 'default'
-
Stricter project setup (
ng new app --strict) - New Date Range Picker in Angular Material 👉 Focus on quality and type safety.
Angular 11
- Faster builds & HMR (Hot Module Replacement)
ng serve --hmr
- Automatic font optimization
- Updated ESLint instead of TSLint
- Improved logging & debugging 👉 Better DX (Developer Experience).
Angular 12
- Removed support for View Engine → Ivy-only
- Strict mode by default
- Webpack 5 support
- Nullish Coalescing in templates
{{ user?.name ?? 'Guest' }}
👉 Push towards modern tooling.
Angular 13
- No more
ngcc(Angular Compatibility Compiler) - ESBuild for faster builds
- Simplified Angular Package Format
- Component API improvements 👉 Cleaned up legacy dependencies — faster builds.
Angular 14
- Standalone Components (major change!)
@Component({
standalone: true,
template: <h1>Hello</h1>
})
export class HelloComponent {}
- Typed Reactive Forms
- Better CLI autocompletion 👉 Can build apps without NgModule — huge shift.
Angular 15
- Standalone APIs officially stable
- Functional route guards & resolvers
const authGuard: CanActivateFn = (route, state) => true;
- Improved performance
- Directive composition API 👉 Encourages modular and cleaner applications.
Angular 16
- Signals (reactivity model, preview)
const count = signal(0);
count.set(5);
- Server-side rendering improvements
- Better hydration
- Faster compilation 👉 Signals simplify state management — major future shift.
Angular 17 (Latest Major)
- Full support for Signals (stable)
- New Control Flow Syntax
@if(condition) { ... }
@for(item of items) { ... }
- Better SSR & hydration
- Improved routing with deferrable views
- Standalone apps now the default 👉 Angular becomes lighter, more React-like.
Summary Table
| Version | Key Features |
|---|---|
| Angular 8 | Ivy (preview), differential loading |
| Angular 9 | Ivy default, faster builds |
| Angular 10 | Optional chaining, strict mode |
| Angular 11 | HMR, ESLint, font optimization |
| Angular 12 | Ivy-only, Webpack 5 |
| Angular 13 | ESBuild, removed ngcc |
| Angular 14 | Standalone components, typed forms |
| Angular 15 | Functional guards, modular architecture |
| Angular 16 | Signals (preview), SSR upgrades |
| Angular 17 | Signals stable, new control flow |
Top comments (0)