SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
1
Wiederverwendbare
Komponenten mit Angular 2.0
Deep Dive
Manfred Steyer
Über mich …
Manfred Steyer
Trainer & Berater
Fokus: Angular
Page  2
2
Ziele
Möglichkeiten zum Entwickeln eigener
Komponenten in Angular 2 kennen lernen
Fokus auf Konzepte
Nicht: Allgemeine Angular-2-Einführung
Page  3
Inhalt
Angular 2
Komponenten vs. Direktiven
Erste Schritte: Bindings
Kommunikation zwischen Direktiven
Life-Cycle-Hooks
Two-Way-Binding
Zusammenfassung
Page  4
3
Didaktik
Folien
Viel Live-Coding
Page  5
ANGULAR 2
Page  8
4
Was ist Angular 2
SPA-
Framework
Moderne
Apps
Nachfolger
von
AngularJS
Große
Community
BETA
Stabiler
Kern
Page  9
Direktiven und Komponenten
Page  14
• Verhalten für Elemente
• CSS-SelektorDirektiven
• Direktiven mit Template
• Kann weitere Direktiven
und Komponenten nutzen
Komponenten
• Offener Standard
• Unterstützung durch
Angular 2 geplant
Web-
Components
5
DEMO-KOMPONENTE
Page  15
"Im Kleinen verstehen; im Großen
anwenden"
Page  16
[Robert Sedgewick]
6
Option-Box und Option-Item
Page  17
Option-Box
App-Component
App-Component
Page  19
<h1>{{title}}</h1>
[…]
<option-item
[selected]="true"
[value]="1"
(change)="change($event)">
Per Express
</option-item>
[…]
7
Option-Item (Controller)
Page  20
@Component({
selector: 'option-item',
templateUrl: 'option-item.html',
styleUrls: ['app/option-item/option-item.css']
})
export class OptionItem {
@Input() selected: boolean;
@Input() value: string;
@Output() change = new EventEmitter();
select() { […] }
}
DEMO
Page  24
8
KOMMUNIKATION
ZWISCHEN DIREKTIVEN
Page  25
Option-Box
Page  26
<option-box [value]="[…]">
<option-item […]>Per Express</option-item>
<option-item […]>Per Einschreiben</option-item>
</option-box>
9
Untergeordnete Komponenten abfragen
Page  27
@ContentChildren(OptionItem)
items: QueryList<OptionItem>;
DEMO
Page  28
10
LIFECYCLE-HOOKS
Page  29
Lifecycle-Hooks (Auszug)
Page  30
OnInit ngOnInit
OnDestroy ngOnDestroy
OnChanges ngOnChanges
AfterContentInit ngAfterContentInit
11
DEMO
Page  32
TWO-WAY-BINDING
Page  33
12
Two-Way-Binding
Page  34
<option-box [value]="value"
(valueChange)="setValue($event)">
[…]
</option-box>
<option-box [(value)]="value">
[…]
</option-box>
<option-box [value]="value"
(valueChange)="value = $event">
[…]
</option-box>
DEMO
Page  35
13
Zusammenfassung
 Property-Bindings
 Event-Bindings
 Two-Way-Binding =
Property- + Event-Binding + Syntax-Zucker
 Content-Projection
 Kommunikation mit ContentChildren
 Life-Cycle-Hooks
manfred.steyer@SOFTWAREarchitekt.at
SOFTWAREarchitekt.at
ManfredSteyer
Contact

Weitere ähnliche Inhalte

Ähnlich wie Wiederverwendbare Komponenten mit Angular 2.0 – Deep Dive

Komponenten mit Angular 2, Deep Dive
Komponenten mit Angular 2, Deep DiveKomponenten mit Angular 2, Deep Dive
Komponenten mit Angular 2, Deep DiveManfred Steyer
 
.NET Summit 2016 München: Angular 2 mit TypeScript
.NET Summit 2016 München: Angular 2 mit TypeScript.NET Summit 2016 München: Angular 2 mit TypeScript
.NET Summit 2016 München: Angular 2 mit TypeScriptManfred Steyer
 
Angular 2 Workshop November 2015 von der w-jax 2015
Angular 2 Workshop November 2015 von der w-jax 2015Angular 2 Workshop November 2015 von der w-jax 2015
Angular 2 Workshop November 2015 von der w-jax 2015Manfred Steyer
 
Entwicklung eines leichtgewichtigen Web-Clients für das Lernsystem Kakadu
Entwicklung eines leichtgewichtigen Web-Clients für das Lernsystem KakaduEntwicklung eines leichtgewichtigen Web-Clients für das Lernsystem Kakadu
Entwicklung eines leichtgewichtigen Web-Clients für das Lernsystem KakaduGeorg Schmidhammer
 
Schau, Mutti, keine Programmierzeile
Schau, Mutti, keine ProgrammierzeileSchau, Mutti, keine Programmierzeile
Schau, Mutti, keine Programmierzeilerokr
 
Beschleunigen Sie Ihre Web-Entwicklung mit AngularJS Framework
Beschleunigen Sie Ihre Web-Entwicklung mit AngularJS FrameworkBeschleunigen Sie Ihre Web-Entwicklung mit AngularJS Framework
Beschleunigen Sie Ihre Web-Entwicklung mit AngularJS FrameworkDieter Ziegler
 
eCollaboration-Projektmanagement-Tools
eCollaboration-Projektmanagement-ToolseCollaboration-Projektmanagement-Tools
eCollaboration-Projektmanagement-Toolsdp123123
 
Drupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in KlagenfurtDrupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in Klagenfurtdasjo
 
Einführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresEinführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresMatthias Jauernig
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightChristinaLerch1
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Andreas Wissel
 

Ähnlich wie Wiederverwendbare Komponenten mit Angular 2.0 – Deep Dive (20)

Komponenten mit Angular 2, Deep Dive
Komponenten mit Angular 2, Deep DiveKomponenten mit Angular 2, Deep Dive
Komponenten mit Angular 2, Deep Dive
 
Angular 2 Components
Angular 2 ComponentsAngular 2 Components
Angular 2 Components
 
Schnelleinstieg in Angular
Schnelleinstieg in AngularSchnelleinstieg in Angular
Schnelleinstieg in Angular
 
.NET Summit 2016 München: Angular 2 mit TypeScript
.NET Summit 2016 München: Angular 2 mit TypeScript.NET Summit 2016 München: Angular 2 mit TypeScript
.NET Summit 2016 München: Angular 2 mit TypeScript
 
AngularJs
AngularJsAngularJs
AngularJs
 
Was bringt Angular 2?
Was bringt Angular 2?Was bringt Angular 2?
Was bringt Angular 2?
 
Angular 2 Workshop November 2015 von der w-jax 2015
Angular 2 Workshop November 2015 von der w-jax 2015Angular 2 Workshop November 2015 von der w-jax 2015
Angular 2 Workshop November 2015 von der w-jax 2015
 
Workshop Vue js
Workshop Vue jsWorkshop Vue js
Workshop Vue js
 
Entwicklung eines leichtgewichtigen Web-Clients für das Lernsystem Kakadu
Entwicklung eines leichtgewichtigen Web-Clients für das Lernsystem KakaduEntwicklung eines leichtgewichtigen Web-Clients für das Lernsystem Kakadu
Entwicklung eines leichtgewichtigen Web-Clients für das Lernsystem Kakadu
 
Schau, Mutti, keine Programmierzeile
Schau, Mutti, keine ProgrammierzeileSchau, Mutti, keine Programmierzeile
Schau, Mutti, keine Programmierzeile
 
Beschleunigen Sie Ihre Web-Entwicklung mit AngularJS Framework
Beschleunigen Sie Ihre Web-Entwicklung mit AngularJS FrameworkBeschleunigen Sie Ihre Web-Entwicklung mit AngularJS Framework
Beschleunigen Sie Ihre Web-Entwicklung mit AngularJS Framework
 
CDI
CDICDI
CDI
 
eCollaboration-Projektmanagement-Tools
eCollaboration-Projektmanagement-ToolseCollaboration-Projektmanagement-Tools
eCollaboration-Projektmanagement-Tools
 
Drupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in KlagenfurtDrupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in Klagenfurt
 
AngularJS
AngularJSAngularJS
AngularJS
 
Net@night asp.net mvc
Net@night asp.net mvcNet@night asp.net mvc
Net@night asp.net mvc
 
Einführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresEinführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core Middlewares
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
 
react-de.pdf
react-de.pdfreact-de.pdf
react-de.pdf
 

Mehr von Manfred Steyer

Datenbindung und Performance in Angular 2
Datenbindung und Performance in Angular 2Datenbindung und Performance in Angular 2
Datenbindung und Performance in Angular 2Manfred Steyer
 
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/storeSingle Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/storeManfred Steyer
 
Datengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkDatengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkManfred Steyer
 
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0Manfred Steyer
 
Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1Manfred Steyer
 
The newst new Router for Angular 2 ("Version 3")
The newst new Router for Angular 2 ("Version 3")The newst new Router for Angular 2 ("Version 3")
The newst new Router for Angular 2 ("Version 3")Manfred Steyer
 
Databinding and Performance-Tuning in Angular 2
Databinding and Performance-Tuning in Angular 2Databinding and Performance-Tuning in Angular 2
Databinding and Performance-Tuning in Angular 2Manfred Steyer
 
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId ConnectModern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId ConnectManfred Steyer
 
Progressive web apps with Angular 2
Progressive web apps with Angular 2Progressive web apps with Angular 2
Progressive web apps with Angular 2Manfred Steyer
 
Der neueste neue Router (Version 3) für Angular 2
Der neueste neue Router (Version 3) für Angular 2Der neueste neue Router (Version 3) für Angular 2
Der neueste neue Router (Version 3) für Angular 2Manfred Steyer
 
ASP.NET Core 1 for MVC- and WebAPI-Devs
ASP.NET Core 1 for MVC- and WebAPI-DevsASP.NET Core 1 for MVC- and WebAPI-Devs
ASP.NET Core 1 for MVC- and WebAPI-DevsManfred Steyer
 
EF Core 1: News features and changes
EF Core 1: News features and changesEF Core 1: News features and changes
EF Core 1: News features and changesManfred Steyer
 
Angular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 LondonAngular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 LondonManfred Steyer
 
Angular 2 - SSD 2016 London
Angular 2 - SSD 2016 LondonAngular 2 - SSD 2016 London
Angular 2 - SSD 2016 LondonManfred Steyer
 
ASP.NET Web API Deep Dive - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 LondonASP.NET Web API Deep Dive - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 LondonManfred Steyer
 
Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1Manfred Steyer
 
.NET Summit 2016 München: EcmaScript 2015+ with TypeScript
.NET Summit 2016 München: EcmaScript 2015+ with TypeScript.NET Summit 2016 München: EcmaScript 2015+ with TypeScript
.NET Summit 2016 München: EcmaScript 2015+ with TypeScriptManfred Steyer
 
Moderne Web-Anwendungen mit Angular 2
Moderne Web-Anwendungen mit Angular 2Moderne Web-Anwendungen mit Angular 2
Moderne Web-Anwendungen mit Angular 2Manfred Steyer
 

Mehr von Manfred Steyer (20)

Datenbindung und Performance in Angular 2
Datenbindung und Performance in Angular 2Datenbindung und Performance in Angular 2
Datenbindung und Performance in Angular 2
 
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/storeSingle Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
 
Datengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkDatengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity Framework
 
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
 
Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1
 
The newst new Router for Angular 2 ("Version 3")
The newst new Router for Angular 2 ("Version 3")The newst new Router for Angular 2 ("Version 3")
The newst new Router for Angular 2 ("Version 3")
 
Databinding and Performance-Tuning in Angular 2
Databinding and Performance-Tuning in Angular 2Databinding and Performance-Tuning in Angular 2
Databinding and Performance-Tuning in Angular 2
 
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId ConnectModern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
 
Progressive web apps with Angular 2
Progressive web apps with Angular 2Progressive web apps with Angular 2
Progressive web apps with Angular 2
 
Der neueste neue Router (Version 3) für Angular 2
Der neueste neue Router (Version 3) für Angular 2Der neueste neue Router (Version 3) für Angular 2
Der neueste neue Router (Version 3) für Angular 2
 
Webpack
WebpackWebpack
Webpack
 
ASP.NET Core 1 for MVC- and WebAPI-Devs
ASP.NET Core 1 for MVC- and WebAPI-DevsASP.NET Core 1 for MVC- and WebAPI-Devs
ASP.NET Core 1 for MVC- and WebAPI-Devs
 
EF Core 1: News features and changes
EF Core 1: News features and changesEF Core 1: News features and changes
EF Core 1: News features and changes
 
Angular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 LondonAngular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 London
 
Angular 2 - SSD 2016 London
Angular 2 - SSD 2016 LondonAngular 2 - SSD 2016 London
Angular 2 - SSD 2016 London
 
ASP.NET Web API Deep Dive - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 LondonASP.NET Web API Deep Dive - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 London
 
Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1
 
.NET Summit 2016 München: EcmaScript 2015+ with TypeScript
.NET Summit 2016 München: EcmaScript 2015+ with TypeScript.NET Summit 2016 München: EcmaScript 2015+ with TypeScript
.NET Summit 2016 München: EcmaScript 2015+ with TypeScript
 
Angular 2: Routing
Angular 2: RoutingAngular 2: Routing
Angular 2: Routing
 
Moderne Web-Anwendungen mit Angular 2
Moderne Web-Anwendungen mit Angular 2Moderne Web-Anwendungen mit Angular 2
Moderne Web-Anwendungen mit Angular 2
 

Wiederverwendbare Komponenten mit Angular 2.0 – Deep Dive

  • 1. 1 Wiederverwendbare Komponenten mit Angular 2.0 Deep Dive Manfred Steyer Über mich … Manfred Steyer Trainer & Berater Fokus: Angular Page  2
  • 2. 2 Ziele Möglichkeiten zum Entwickeln eigener Komponenten in Angular 2 kennen lernen Fokus auf Konzepte Nicht: Allgemeine Angular-2-Einführung Page  3 Inhalt Angular 2 Komponenten vs. Direktiven Erste Schritte: Bindings Kommunikation zwischen Direktiven Life-Cycle-Hooks Two-Way-Binding Zusammenfassung Page  4
  • 4. 4 Was ist Angular 2 SPA- Framework Moderne Apps Nachfolger von AngularJS Große Community BETA Stabiler Kern Page  9 Direktiven und Komponenten Page  14 • Verhalten für Elemente • CSS-SelektorDirektiven • Direktiven mit Template • Kann weitere Direktiven und Komponenten nutzen Komponenten • Offener Standard • Unterstützung durch Angular 2 geplant Web- Components
  • 5. 5 DEMO-KOMPONENTE Page  15 "Im Kleinen verstehen; im Großen anwenden" Page  16 [Robert Sedgewick]
  • 6. 6 Option-Box und Option-Item Page  17 Option-Box App-Component App-Component Page  19 <h1>{{title}}</h1> […] <option-item [selected]="true" [value]="1" (change)="change($event)"> Per Express </option-item> […]
  • 7. 7 Option-Item (Controller) Page  20 @Component({ selector: 'option-item', templateUrl: 'option-item.html', styleUrls: ['app/option-item/option-item.css'] }) export class OptionItem { @Input() selected: boolean; @Input() value: string; @Output() change = new EventEmitter(); select() { […] } } DEMO Page  24
  • 8. 8 KOMMUNIKATION ZWISCHEN DIREKTIVEN Page  25 Option-Box Page  26 <option-box [value]="[…]"> <option-item […]>Per Express</option-item> <option-item […]>Per Einschreiben</option-item> </option-box>
  • 9. 9 Untergeordnete Komponenten abfragen Page  27 @ContentChildren(OptionItem) items: QueryList<OptionItem>; DEMO Page  28
  • 10. 10 LIFECYCLE-HOOKS Page  29 Lifecycle-Hooks (Auszug) Page  30 OnInit ngOnInit OnDestroy ngOnDestroy OnChanges ngOnChanges AfterContentInit ngAfterContentInit
  • 12. 12 Two-Way-Binding Page  34 <option-box [value]="value" (valueChange)="setValue($event)"> […] </option-box> <option-box [(value)]="value"> […] </option-box> <option-box [value]="value" (valueChange)="value = $event"> […] </option-box> DEMO Page  35
  • 13. 13 Zusammenfassung  Property-Bindings  Event-Bindings  Two-Way-Binding = Property- + Event-Binding + Syntax-Zucker  Content-Projection  Kommunikation mit ContentChildren  Life-Cycle-Hooks manfred.steyer@SOFTWAREarchitekt.at SOFTWAREarchitekt.at ManfredSteyer Contact