webinar angular 2 vijfhart - november 2015...5hart-it angular 1.x angular 2.x dev preview...

37
Webinar Angular 2 26 November 2015 20:00 – 21:00 uur CET

Upload: others

Post on 23-May-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

Webinar Angular 226 November 2015

20:00 – 21:00 uur CET

Page 2: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Over Vijfhart

• Vijfhart – sinds 1984

• Guido de Vrught

Manager opleidingen

[email protected]

2

Page 3: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Peter Kassenaar

Over Peter Kassenaar:

Trainer, auteur, developer – sinds 1996

Specialisme: “Everything JavaScript”

JavaScript, ES6, AngularJS, NodeJS, jQuery, PhoneGap

www.kassenaar.com/blog

[email protected]

Twitter: @PeterKassenaar

Page 4: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT 4

Agenda

• Introductie - waarom Angular 2?

• Angular 2 vs. Angular 1

• Kenmerken van Angular 2

--

• Live coding – demo

• Samenvatting

• Q & A

Page 5: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Angular 1 vs.Angular 2Verschillen, overeenkomsten, nieuwe onderdelen

5

Page 6: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Angular 1.x Angular 2.x

DevPreview

TypeScript, ES6 or ES5

ActivelyDeveloped

ContinuedSupport

AngularJS 1.x en Angular 2

Page 7: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Angular 2 Milestones

7

https://github.com/angular/angular/milestones

Page 8: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Kenmerken van Angular 2

Modular & Components DI Consistency

Languages(TypeScript, ES6, ES5)

Documentation WebStandards Community Speed

Page 9: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

moduleName

Controller Config

Routing

Factory

Service

Value

Constant

Directive

<html ng‐app="moduleName">

Angular 1

Page 10: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT 12

OUT

IN

Page 11: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Angular 2 - components

13

<todo-app>

<todos-list>

<todo-item>

{{ todo-text}}

{{ todo-checked}}

<todo-item>

{{ todo-text}}

{{ todo-checked}}

Page 12: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT 14

“Een Angular 2 app is een tree van componenten”

Page 13: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Componenten – visueel

Header Component

Menu Component

Footer Component

Todo Component

Page 14: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Angular 2 Code -Modules, Componenten, Annotaties, en meer

16

Page 15: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

TypeScript

ES6

ES5

Page 16: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

ES6 en TypeScript

• De toekomst van JavaScript is ES6/ES2015Major update van JavaScript als programmeertaal

Modules, classes en meer

Helpt bij het ontwikkelen in Angular 2

• TypeScript breidt ES6 verder uitAnnotaties & types

Interfaces

Compiler

Page 17: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Editors – native TypeScript support

21

Page 18: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Belangrijke ES6 Features

Maps/Sets Classes Block Scope

Arrow Functions Modules Default/Rest

Parameters More...

Destructuring

Page 19: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

TypeScript Compilation

Zowel TypeScript als ES 6: compilatie nodig (transpiling).

Huidige generatie browsers begrijpt ES6 en TypeScript niet.

Page 20: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

typescriptlang.org

24

Page 21: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

TypeScript Playground

25

Page 22: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Angular 2 en modulesModules en module loaders

29

Page 23: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Angular 2 - modules

Een module bestaat uit:

30

HTMLTemplate

JavaScriptCode

CSScode

images….

Maar: net als TypeScript begrijpt een browser ook geen modules,

of import statements. Daarom:

Module Loader

Page 24: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Module Loaders

Groot voordeel ten opzichte van Angular 1: dynamisch laden van modules/lazy loadingingebouwd.

31

AMD(require.js)

CommonJS(Node.js)

UMD

SystemJS (alles)

Page 25: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Scripts laden vs. modules laden

32

<!‐‐ Vendor Scripts ‐‐><script src="js/vendor/angular/angular.min.js"></script><script src="js/vendor/angular‐sanitize/angular‐sanitize.min.js"></script><script src="js/vendor/angular‐route/angular‐route.min.js"></script><script src="js/vendor/angular‐animate/angular‐animate.min.js"></script><script src="js/vendor/angular‐bootstrap/ui‐bootstrap.min.js"></script><script src="js/vendor/angular‐bootstrap/ui‐bootstrap‐tpls.min.js"></script>

<!‐‐Custom Scripts ‐ blackjack logic ‐‐><script src="js/Card.js"></script><script src="js/Deck.js"></script><script src="js/Hand.js"></script><script src="js/Session.js"></script><script src="js/basicStrategyChart.js"></script>

<!‐‐Custom Angular Scripts to control app‐‐><script src="js/app.js"></script><script src="js/app.routes.js"></script><script src="js/controllers/homeController.js"></script><script src="js/controllers/playController.js"></script><script src="js/controllers/simController.js"></script><script src="js/controllers/detailController.js"></script><script src="js/controllers/chartController.js"></script><script src="js/services/bjService.js"></script>

<script src="../node_modules/systemjs/dist/system.src.js"></script><script src="../node_modules/angular2/bundles/angular2.dev.js"></script><script>

// module loaderSystem.config({

packages: {app: {defaultExtension: 'js'}}});System.import('app/app'); 

</script>

Page 26: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Angular 2 Code -templatesNieuwe syntaxis in HTML / front-end

33

Page 27: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Declaratieve syntaxis

• Nieuwe notatiewijzen in HTML-views/partials.

Simple data binding

One-way data binding

Two-way data binding

Event binding

• Angular 1:

Views zijn op zichzelf staande HTML-documenten. Krijgen via router in

een app onderlinge samenhang

• Angular 2:

Views horen bij een bepaalde component.

34

Page 28: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Simple data binding syntaxis

Ongewijzigd ten opzichte van Angular 1. Dus nog steeds dubbele accolades:

<div>Voornaam: {{ person.firstname }}</div>

35

Page 29: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

One-way binding syntaxis

Rechtstreeks binden aan properties van HTML-elementen Gebruik blokhaken syntaxis

Angular 1:<div ng-hide=“true|false”>…</div>

Angular 2:<div [hidden]=“true”>…</div>

Of : <div [hidden]=“person.hasEmail”>…</div><div [style.background-color]=“’yellow’”>…</div>

36

Page 30: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Event binding syntaxis

Gebruik ronde haken voor events:

Angular 1:<div ng-click=“handleClick()”>…</div>

Angular 2:

<div (click)=“handleClick()”>…</div>

<div (blur)=“onBlur()”>…</div>

37

Page 31: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Two way binding syntaxis

Is een tijdje weg geweest uit Angular 2, maar op veler verzoek toch

teruggekeerd

Angular 1:

<input ng-model=“person.firstName” />

Angular 2: de notatie is een beetje bizar:

<input [(ng-model)]=“person.firstName” />

38

Page 32: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT 39

https://angular.io/docs/ts/latest/guide/cheatsheet.html

Page 33: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT 41

1.Basisproject maken –

structuur inrichten

2.Component toevoegen

3.Compileren en runnen in

browser

4.Extra component toevoegen

Page 34: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Samenvatting…

• Angular 2 is een doorontwikkeling van Angular 1 met compleet

nieuwe syntaxis voor code & templates

• Angular2 is gemaakt voor TypeScript, ECMAScript 2015 en modulair

JavaScript.

• Angular2 draait in moderne browsers in combinatie met een transpiler

en module loader

• Veel concepten komen overeen, de uitwerking is totaal nieuw.

43

Page 35: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Verder gaan

• Vervolg:

Architectuur opzetten, nog meer dan bij Angular 1 van te voren bekijken

wat je nodig hebt, welke componenten elkaar nodig hebben.

Toekomst: angular-cli (http://ngcli.github.io/)

Piping (in Angular 1 : ‘filters’)

Forms

Werken met Services en Http

Routing

Directives schrijven

Testing

Security

44

Page 36: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Angular 2 training

Vanaf januari 2016: Single Page Applications with Angular 2

45

tinyurl.com/training-angular2 tinyurl.com/training-angular1

Page 37: Webinar Angular 2 Vijfhart - november 2015...5HART-IT Angular 1.x Angular 2.x Dev Preview TypeScript, ES6 or ES5 Actively Developed Continued Support AngularJS 1.x en Angular 2

5HART-IT

Bedankt voor je tijdGuido de Vrught – [email protected] Kassenaar – [email protected]

46