15
1 Component Router für Angular 1.x und 2.0 Manfred Steyer ManfredSteyer Inhalt Überblick zu Routing Stand der Dinge Component Router DEMO Lifecycle-Hooks DEMO Page 3

Modern angular 04_component_router

Embed Size (px)

Citation preview

Page 1: Modern angular 04_component_router

1

Component Router für Angular 1.x und 2.0

Manfred Steyer

ManfredSteyer

Inhalt

Überblick zu Routing

Stand der Dinge

Component Router

DEMO

Lifecycle-Hooks

DEMO

Page 3

Page 2: Modern angular 04_component_router

2

ÜBERBLICK ZU ROUTING

Page 4

Motivation

SPAs bestehen aus einer Seite

Innerhalb dieser werden Bereiche ein- und

ausgeblendet --> "Logische Seiten"

Herausforderungen:

Bookmarks

Back-Button

Eigene Datei pro logischer Seite --> Übersicht

Page 5

Page 3: Modern angular 04_component_router

3

Routing

Logische Seiten erhalten eine URL, z. B:

/FlugDemo#flugbuchen/passagier

/FlugDemo#flugbuchen/flug

Logische Seiten erhalten URL-Parameter, z. B.:

/FlugDemo#flugbuchen/passagier/5

Page 6

Routing

Page 7

Logo + Menü

Men

ü 2

Fußzeile

SPAPlatzhalter

Page 4: Modern angular 04_component_router

4

Routing

Page 8

Logo + Menü

Men

ü 2

Fußzeile

SPAPassagier.html

/FlugDemo#flugbuchen/passagier

Weitere Möglichkeiten

Hierarchische Views

Multi-Views

Page 9

Page 5: Modern angular 04_component_router

5

HIERARCHISCHE VIEWS

Page 10

Hierarchische Views

Page 11

Logo + Menü

Men

ü 2

Fußzeile

SPA

Platzhalter 1

Page 6: Modern angular 04_component_router

6

Hierarchische Views

Page 12

Logo + Menü

Men

ü 2

Fußzeile

SPA

/FlugDemo#flugbuchenflu

gb

uch

en

.htm

l

Hierarchische Views

Page 13

Logo + Menü

Men

ü 2

Fußzeile

SPA

/FlugDemo#flugbuchen

Optionen flugb

uch

en

.htm

l

Platzhalter

Page 7: Modern angular 04_component_router

7

Hierarchische Views

Page 14

Logo + Menü

Men

ü 2

Fußzeile

SPA

/FlugDemo#flugbuchen/passagier

Optionen flugb

uch

en

.htm

l

Passagier.html

MULTIPLE VIEWS

Page 15

Page 8: Modern angular 04_component_router

8

Multiple Views

Page 16

Logo + Menü

Men

ü 2

Fußzeile

SPAPlatzhalter 1

Platzhalter 2

Multiple Views

Page 17

Logo + Menü

Men

ü 2

Fußzeile

SPAPassagier.html

Passagier-Links.html

/FlugDemo#flugbuchen/passagier

Page 9: Modern angular 04_component_router

9

STAND DER DINGE

Page 18

ngRoute

Routing-Modul in AngularJS

Nur für einfache Use-Cases gedacht

Kein hierarchisches Routing

Keine Multi-Views

Page 19

Page 10: Modern angular 04_component_router

10

UI-Router

Freies Community-Projekt

Defakto Standard

Unterstützt alle bis dato betrachteten

Szenarien für AngularJS 1.x

Auch: Hierarchische Views und Multi-Views

Page 20

COMPONENT ROUTER

Page 21

Page 11: Modern angular 04_component_router

11

Überblick

Unterstützt die bisher betrachteten Szenarien

Convention over Configuration

Unterstützt sowohl AngularJS 1.x als auch

Angular 2 side-by-side

„Schleichende“ Migrationsstrategie

Page 22

Komponenten

Ziel einer Route --> Komponente

Komponente in Angular 1.x:

Controller + Template

Konvention für Controller: XYController

Konvention für Template: xy/xy.html

Konvention für Controller-Instanz: xy

Konfigurieren: $componentLoaderProvider

Page 23

Page 12: Modern angular 04_component_router

12

Entwicklungsstand und Installation

Noch in Entwicklung!!

Hier vorgestellte Version: 0.5.x

Soll mit Angular 1.5 kommen

Installation: npm install angular-new-router

Page 24

Künftige Features

Navigation-Model

Lazy Loading

Page 25

Page 13: Modern angular 04_component_router

13

DEMO

Page 26

LIFECYCLE HOOKS

Page 27

Page 14: Modern angular 04_component_router

14

Hooks auf Controller-Ebene

canActivate

activate

canDeactivate

deactivate

Page 28

DEMO

Page 29

Page 15: Modern angular 04_component_router

15

Zusammenfassung

Angular 1.x und 2 side-by-side

Schleichende Migration

Konventionen

Hierarchische Views und Multi-Views

Life-Cycle Hooks

Page 30