Angular 2 je venku (RC) a je to kompletně jiný framework. TypeScript místo JavaScript, komponenty místo controllerů, RxJS Observables místo Promises. Nekompatibilní s Angular 1.x. Kontroverzní rozhodnutí — ale je výsledek lepší?
TypeScript¶
Angular 2 je napsaný v TypeScript a doporučuje ho pro vývoj. Pro Java vývojáře je TypeScript přirozený — typy, interfaces, classes, generika. IDE podpora (autocomplete, refactoring) na úrovni Javy. Chyby odhalené při kompilaci, ne za běhu.
@Component({
selector: 'project-list',
template: `
<div *ngFor="let project of projects">
<h3>{{project.name}}</h3>
<p>{{project.description}}</p>
</div>
`
})
export class ProjectListComponent implements OnInit {
projects: Project[] = [];
constructor(private projectService: ProjectService) {}
ngOnInit() {
this.projectService.getProjects()
.subscribe(projects => this.projects = projects);
}
}
Komponenty¶
Vše je komponenta. Žádné controllery, žádné scopy. Komponenta = třída + template + metadata (dekorátor). Hierarchie komponent místo scope inheritance. Čistší, predikovatelnější.
RxJS a Observables¶
Angular 2 intenzivně používá RxJS Observables. HTTP requesty vrací Observable, ne Promise. Operátory jako map, filter, switchMap pro reaktivní programování. Silné, ale strmá křivka učení.
Angular 2 vs. React¶
Angular 2 je full framework (routing, forms, HTTP, DI). React je knihovna + ekosystém. Angular 2 má strmější start ale víc struktury. React je flexibilnější. Pro enterprise týmy je Angular 2 atraktivní — méně rozhodování.
Angular 2 je solidní framework¶
Přechod z Angular 1 je bolestivý (de facto nový framework). Ale Angular 2 s TypeScript je výborná volba pro enterprise SPA. Zvažujeme pro nové projekty vedle Reactu.