Google vydal Angular 2 — kompletní přepis frameworku s TypeScriptem, komponentovou architekturou a ahead-of-time kompilací. Co se změnilo a jak migrovat.
Proč kompletní přepis¶
AngularJS (1.x) byl průkopníkem SPA frameworků, ale jeho architektura narazila na limity. Two-way binding způsoboval výkonnostní problémy, dependency injection byl nepřehledný a scope hierarchy vedla k těžko laditelným bugům.
Angular 2 je kompletně nový framework — sdílí jen jméno. Postaven na TypeScriptu s komponentovou architekturou inspirovanou Reactem, přináší zásadně lepší výkon a developer experience.
Komponenty a TypeScript¶
Komponenty jsou základní stavební blok Angular 2:
import { Component } from '@angular/core';
@Component({
selector: 'app-hero',
template: `
<h2>{{hero.name}}</h2>
<p>ID: {{hero.id}}</p>
<button (click)="save()">Uložit</button>
`
})
export class HeroComponent {
hero = { id: 1, name: 'Superman' };
save(): void {
console.log('Saving hero:', this.hero.name);
}
}
TypeScript přináší statické typování, interfaces a lepší IDE podporu. Decorátory (@Component, @Injectable) nahrazují AngularJS konfiguraci.
Změny oproti AngularJS¶
Klíčové rozdíly:
- Komponenty místo controllers** — hierarchický strom komponent
- TypeScript místo JavaScript** — typová bezpečnost a moderní syntax
- RxJS Observables** — reaktivní programování místo promises
- Ahead-of-Time (AOT) kompilace** — šablony kompilované při buildu, ne v runtime
- Tree shaking** — eliminace nepoužívaného kódu
- Modulární architektura** — NgModules pro organizaci kódu
Výkonnostní zlepšení jsou dramatická — AOT kompilace a change detection strategie OnPush výrazně snižují rendering overhead.
Migrace z AngularJS¶
Google poskytuje ngUpgrade modul pro postupnou migraci:
- Spusťte AngularJS a Angular 2 side-by-side
- Migrujte komponentu po komponentě
- Sdílejte services mezi oběma verzemi
- Postupně odstraňujte AngularJS závislosti
Pro nové projekty doporučujeme rovnou Angular 2. Pro existující AngularJS aplikace zvažte, zda migrace stojí za investici — ne vždy je odpověď ano.
Závěr: nová generace enterprise frameworku¶
Angular 2 je odvážný krok — breaking change, který rozhněval část komunity, ale přinesl moderní, výkonný framework vhodný pro enterprise aplikace. Kombinace TypeScriptu, RxJS a AOT kompilace vytváří robustní platformu pro komplexní webové aplikace.