SlideShare ist ein Scribd-Unternehmen logo
1
Angular 2.0: Routing
Manfred Steyer
ManfredSteyer
Inhalt
Motivation
Konfiguration
Routing-Parameter
Hierarchisches Routing
Lifecycle-Hooks
Page  2
2
Motivation
 SPAs bestehen aus einer Seite
 Innerhalb dieser werden Bereiche ein- und
ausgeblendet --> "Logische Seiten"
 Routen verweisen auf diese Seiten
 Route ist Teil der Url
 Bookmarks
 Back-Button
 Router unterstützen hierbei
Page  4
Routing unter AngularJS
Page  10
Logo + Menü
Menü2
Fußzeile
SPA
Platzhalter
3
Routing unter AngularJS
Page  11
Logo + Menü
Menü2
Fußzeile
SPA Passagier-
Komponente
/FlugDemo#flugbuchen/passagier
Hierarchische Views
Page  12
Logo + Menü
Menü2
Fußzeile
SPA
Platzhalter 1
4
Hierarchische Views
Page  13
Logo + Menü
Menü2
Fußzeile
SPA
/FlugDemo#flugbuchen
FlugBuchen-Komponente
Hierarchische Views
Page  14
Logo + Menü
Menü2
Fußzeile
SPA
/FlugDemo#flugbuchen
Optionen
Platzhalter
FlugBuchen-Komponente
5
Hierarchische Views
Page  15
Logo + Menü
Menü2
Fußzeile
SPA
/FlugDemo#flugbuchen/passagier
Optionen
Passagier-
Komponente
FlugBuchen-Komponente
Routen via Hash-Fragment
 /FlugDemo#flugbuchen/passagier
 Hash-Fragment wird nie zum Server gesendet
Page  16
6
Routen via History API
 /FlugDemo/flugbuchen/passagier
 Initialer Aufruf:
Gesamte Url wird zum Server gesendet
 Server antwortet mit SPA
 Server kann erste Ansicht "vorrendern"
 Performance, SEO, …
 SPA informiert Browser über Grenze zwischen
physischer und logischer Url
Page  17
Parameter
 /FlugDemo/flugbuchen/passagier/7
 /FlugDemo#flugbuchen/passagier/7
Page  18
7
COMPONENT ROUTER
Page  20
Vorbereitung
 Bundle für Router über Script-Verweis inkludieren:
 <script src="node_modules/angular2/bundles/router.dev.js">
</script>
 ROUTER_PROVIDERS
 Für Hash-Strategie
 provide(LocationStrategy,
{useClass: HashLocationStrategy})
Page  21
8
History API (PathLocationStrategy)
Standard
<base href="/">
Alternative: Token APP_BASE_HREF
Page  22
AppComponent
Page  23
@Component({
selector: 'app',
directives: [ROUTER_DIRECTIVES],
templateUrl: 'app/app.html'
})
@RouteConfig([
{ path: '/', component: Home,
name: 'Home', useAsDefault: true },
{ path: '/flug-suchen', component: FlugSuchen,
name: 'FlugSuchen' }
])
export class App {
[…]
}
9
View von AppComponent
Page  24
<a [routerLink]="['/Home']">Home</a>
<a [routerLink]="['/FlugSuchen']">Flug suchen</a>
<div>
<router-outlet></router-outlet>
</div>
Aktives Element bekommt Klasse 'router-link-active'
ROUTEN MIT PARAMETER
Page  25
10
Routen mit Parameter
Page  26
@Component({
selector: 'app',
directives: [ROUTER_DIRECTIVES],
templateUrl: 'app/app.html'
})
@RouteConfig([
{ path: '/', component: Home, name: 'Home' },
{ path: '/flug-suchen', component: FlugSuchen,
name: 'FlugSuchen' },
{ path: '/flug-edit/:id', component: FlugEdit,
name: 'FlugEdit' }
])
export class App {
[…]
}
Route-Parameter auslesen
Page  27
@Component({
templateUrl: 'app/components/flug-edit/flug-edit.html'
})
export class FlugEdit {
id;
constructor(params: RouteParams) {
this.id = params.get('id');
this.info = 'Flug: #' + this.id;
}
}
11
Links auf Routen mit Parameter
Page  28
<a [routerLink]="['/FlugEdit', {id: flug.id}]">Edit</a>
DEMO
Page  29
12
ZUSAMMENFASSUNG
Page  53
Zusammenfassung
Page  54
Angular:
Weite
Verbreitung
Komponenten Data-Binding
Dependency
Injection
Services Formulare
Validierung Routing
13
manfred.steyer@SOFTWAREarchitekt.at
SOFTWAREarchitekt.at
ManfredSteyer
Contact

Weitere ähnliche Inhalte

PDF
Modern angular 04_component_router
PPTX
Editing the Photo Shoot
PPTX
BASTA! 2016 - Roslyn & Visual Studio Extensions
DOCX
Sa073 ii secundaria-paula cuayla _setiembre_ windows y la pc
DOCX
Trabajo individual cuayla quispe paula
PDF
Warbler Points and Rewards
PDF
.NET Summit 2016 München: Angular 2 mit TypeScript
PPTX
Layouts for magazines
Modern angular 04_component_router
Editing the Photo Shoot
BASTA! 2016 - Roslyn & Visual Studio Extensions
Sa073 ii secundaria-paula cuayla _setiembre_ windows y la pc
Trabajo individual cuayla quispe paula
Warbler Points and Rewards
.NET Summit 2016 München: Angular 2 mit TypeScript
Layouts for magazines

Andere mochten auch (8)

PDF
Rapunzel y sus invitados
PPTX
Evaluation
PDF
PPTX
Подключение Веб Аналитики
PPTX
Возврат посетителей на сайт
PPTX
Яндекс Директ на поиске
PDF
Elämänlaatu 2040 - Seuranta 2015
PDF
95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht
Rapunzel y sus invitados
Evaluation
Подключение Веб Аналитики
Возврат посетителей на сайт
Яндекс Директ на поиске
Elämänlaatu 2040 - Seuranta 2015
95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht
Anzeige

Mehr von Manfred Steyer (20)

PDF
Der neue Component Router für Angular 2
PDF
Datenbindung und Performance in Angular 2
PDF
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
PDF
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
PDF
Angular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtet
PDF
Datengetriebene Web APIs mit Entity Framework
PDF
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
PDF
Web APIs mit ASP.NET Core 1
PDF
The newst new Router for Angular 2 ("Version 3")
PDF
Databinding and Performance-Tuning in Angular 2
PDF
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
PDF
Progressive web apps with Angular 2
PDF
Der neueste neue Router (Version 3) für Angular 2
PDF
PDF
ASP.NET Core 1 for MVC- and WebAPI-Devs
PDF
EF Core 1: News features and changes
PDF
Angular 2: Migration - SSD 2016 London
PDF
Angular 2 - SSD 2016 London
PDF
ASP.NET Web API Deep Dive - SSD 2016 London
PDF
Was bringt Angular 2?
Der neue Component Router für Angular 2
Datenbindung und Performance in Angular 2
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
Angular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtet
Datengetriebene Web APIs mit Entity Framework
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Web APIs mit ASP.NET Core 1
The newst new Router for Angular 2 ("Version 3")
Databinding and Performance-Tuning in Angular 2
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Progressive web apps with Angular 2
Der neueste neue Router (Version 3) für Angular 2
ASP.NET Core 1 for MVC- and WebAPI-Devs
EF Core 1: News features and changes
Angular 2: Migration - SSD 2016 London
Angular 2 - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 London
Was bringt Angular 2?
Anzeige

Angular 2: Routing

  • 1. 1 Angular 2.0: Routing Manfred Steyer ManfredSteyer Inhalt Motivation Konfiguration Routing-Parameter Hierarchisches Routing Lifecycle-Hooks Page  2
  • 2. 2 Motivation  SPAs bestehen aus einer Seite  Innerhalb dieser werden Bereiche ein- und ausgeblendet --> "Logische Seiten"  Routen verweisen auf diese Seiten  Route ist Teil der Url  Bookmarks  Back-Button  Router unterstützen hierbei Page  4 Routing unter AngularJS Page  10 Logo + Menü Menü2 Fußzeile SPA Platzhalter
  • 3. 3 Routing unter AngularJS Page  11 Logo + Menü Menü2 Fußzeile SPA Passagier- Komponente /FlugDemo#flugbuchen/passagier Hierarchische Views Page  12 Logo + Menü Menü2 Fußzeile SPA Platzhalter 1
  • 4. 4 Hierarchische Views Page  13 Logo + Menü Menü2 Fußzeile SPA /FlugDemo#flugbuchen FlugBuchen-Komponente Hierarchische Views Page  14 Logo + Menü Menü2 Fußzeile SPA /FlugDemo#flugbuchen Optionen Platzhalter FlugBuchen-Komponente
  • 5. 5 Hierarchische Views Page  15 Logo + Menü Menü2 Fußzeile SPA /FlugDemo#flugbuchen/passagier Optionen Passagier- Komponente FlugBuchen-Komponente Routen via Hash-Fragment  /FlugDemo#flugbuchen/passagier  Hash-Fragment wird nie zum Server gesendet Page  16
  • 6. 6 Routen via History API  /FlugDemo/flugbuchen/passagier  Initialer Aufruf: Gesamte Url wird zum Server gesendet  Server antwortet mit SPA  Server kann erste Ansicht "vorrendern"  Performance, SEO, …  SPA informiert Browser über Grenze zwischen physischer und logischer Url Page  17 Parameter  /FlugDemo/flugbuchen/passagier/7  /FlugDemo#flugbuchen/passagier/7 Page  18
  • 7. 7 COMPONENT ROUTER Page  20 Vorbereitung  Bundle für Router über Script-Verweis inkludieren:  <script src="node_modules/angular2/bundles/router.dev.js"> </script>  ROUTER_PROVIDERS  Für Hash-Strategie  provide(LocationStrategy, {useClass: HashLocationStrategy}) Page  21
  • 8. 8 History API (PathLocationStrategy) Standard <base href="/"> Alternative: Token APP_BASE_HREF Page  22 AppComponent Page  23 @Component({ selector: 'app', directives: [ROUTER_DIRECTIVES], templateUrl: 'app/app.html' }) @RouteConfig([ { path: '/', component: Home, name: 'Home', useAsDefault: true }, { path: '/flug-suchen', component: FlugSuchen, name: 'FlugSuchen' } ]) export class App { […] }
  • 9. 9 View von AppComponent Page  24 <a [routerLink]="['/Home']">Home</a> <a [routerLink]="['/FlugSuchen']">Flug suchen</a> <div> <router-outlet></router-outlet> </div> Aktives Element bekommt Klasse 'router-link-active' ROUTEN MIT PARAMETER Page  25
  • 10. 10 Routen mit Parameter Page  26 @Component({ selector: 'app', directives: [ROUTER_DIRECTIVES], templateUrl: 'app/app.html' }) @RouteConfig([ { path: '/', component: Home, name: 'Home' }, { path: '/flug-suchen', component: FlugSuchen, name: 'FlugSuchen' }, { path: '/flug-edit/:id', component: FlugEdit, name: 'FlugEdit' } ]) export class App { […] } Route-Parameter auslesen Page  27 @Component({ templateUrl: 'app/components/flug-edit/flug-edit.html' }) export class FlugEdit { id; constructor(params: RouteParams) { this.id = params.get('id'); this.info = 'Flug: #' + this.id; } }
  • 11. 11 Links auf Routen mit Parameter Page  28 <a [routerLink]="['/FlugEdit', {id: flug.id}]">Edit</a> DEMO Page  29
  • 12. 12 ZUSAMMENFASSUNG Page  53 Zusammenfassung Page  54 Angular: Weite Verbreitung Komponenten Data-Binding Dependency Injection Services Formulare Validierung Routing