angular 2 le framework de 2016 - publicis sapient · angular 2 le framework de 2016 dmytro...

27
Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack

Upload: others

Post on 27-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

Angular 2 Le Framework de 2016

Dmytro Podyachiydéveloppeur full-stack

Page 2: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

AngularJS

Page 3: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Page 4: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Page 5: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Page 6: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Migration...

Page 7: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Page 8: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Composants

Page 9: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Arborescence

Page 10: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

class MyComponent { name:string = 'Angular.io';}

Decorator

<div> <my-component></my-component></div>

Utilisation

@Component({ selector: 'my-component' template: ` <div>Hello {{name}} !</div> `, styles: [`...`]})class MyComponent { name:string = 'Angular.io';}

Page 11: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

API Entrée / Sortie

Page 12: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

API d’entrée

<div> <my-component [name]="data"></my-component></div>

Properties: [...]

@Component({ selector: 'my-component' template: '<div>Hello {{name}}!</div>'})class MyComponent { @Input() name:string;}

@Input

Page 13: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

API d’entrée

<img [src]="myImage">

<div [hidden]="isHidden">Hidden if isHidden is true </div>

HTML native

Page 14: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

API Sortie

@Component({ selector: 'my-component' })class MyComponent { @Output() myEvent:EventEmitter = new EventEmitter(); // declaration

fireMyEvent(data: string) { this.myEvent.emit({value: data}); }}

@Output()

Evenements: ()<my-component (myEvent)="myFunction($event)"></my-component>

Page 15: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

API d’entrée

Evénéments natives

<input (blur)="doSomething()" />

<div (click)="doSomething()"></div>

Page 16: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Flux des données: Angular 1 vs Angular 2

Angular 1 Angular 2

43 directives [] et ()

Page 17: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Flux de données

Page 18: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Services

Page 19: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Serviceexport class TalkService { getTalk() { return "Angular 2"; }}

import {TalkService} from './talk-service';

@Component({ selector: 'my-component' template: '<div>Talk {{name}} !</div>'})class MyComponent { name:string = ???;}

Utilisationimport {TalkService} from './talk-service';

@Component({ selector: 'my-component' template: '<div>Talk {{name}} !</div>'})class MyComponent { name:string = new TalkService().getTalk();}

Page 20: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Injection des dépendances

Page 21: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

import {TalkService} from './talk-service';

@Component({ selector: 'my-component' template: '<div>Talk {{name}} !</div>', providers: [TalkService], ...})class MyComponent { name:string;}

import {TalkService} from './talk-service';

@Component({ selector: 'my-component' template: '<div>Talk {{name}} !</div>', providers: [TalkService], ...})class MyComponent { name:string;

constructor(public talkService: TalkService) { }}

import {TalkService} from './talk-service';

@Component({ selector: 'my-component' template: '<div>Talk {{name}} !</div>', providers: [TalkService], ...})class MyComponent { name:string;

constructor(public talkService: TalkService) { }

ngOnInit() { this.name = this.talkService.getTalk(); }}

Injection de dépendances

Page 22: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

DirectivesPipesRouter

Formulaires...

Page 23: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Angular 3

Evergreen

Page 24: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Communauté

1

0.5

0Angular 1Oct 2015

Angular 1May 2016

Angular 2May 2016

1.1M

1.3M

360K

Page 25: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

@XebiaFr

Framework de 2016 / 2017

Page 27: Angular 2 Le Framework de 2016 - Publicis Sapient · Angular 2 Le Framework de 2016 Dmytro Podyachiy développeur full-stack @XebiaFr AngularJS @XebiaFr @XebiaFr @XebiaFr @XebiaFr

Rejoignez-nous !

[email protected]

blog.xebia.fr