40
Angular2 The grand introduction Filip Bruun Bech-Larsen Frontend Manager at IMPACT @filipbech

Angular2 workshop

Embed Size (px)

Citation preview

Page 1: Angular2 workshop

Angular2The grand introduction

Filip Bruun Bech-LarsenFrontend Manager at IMPACT@filipbech

Page 2: Angular2 workshop

Filip

Page 3: Angular2 workshop
Page 4: Angular2 workshop
Page 5: Angular2 workshop

Why 2.0?• Nyt framework med breaking changes…

• Lært af 1.x

• Moderne kode, typer

• Performance

• Fleksibelt

• Platforme

Page 6: Angular2 workshop

Hvad er så nyt

• alt

Page 7: Angular2 workshop

Ej seriøst

• Tænk på det som et nyt framework.

Page 8: Angular2 workshop

The good• Skalerbart Javascript MVC

• Typer

• Classer

• Hierakisk

• Explicit

Page 9: Angular2 workshop

The bad

• Kompleksitet

• ikke oplagt udenfor SPA-kontekst

Page 10: Angular2 workshop

Moderne Apps

• Components, components, components

Page 11: Angular2 workshop

Et træ af komponentermy-app

app-navigationcontact-list

contact-item

toggle-favorite

contact-item

toggle-favorite

contact-item

toggle-favorite

Page 12: Angular2 workshop
Page 13: Angular2 workshop

Dumb vs smart• Dumb (eller stateless) komponenter er ikke

kontekst-specifikke. Modtager data fra parent og kommunikerer med events. Har ingen dependencies.

• Smart (eller stateful) komponenter er ofte kontekst-specifikke. Interagerer med services og lytter efter events fra child-components.

Page 14: Angular2 workshop

Kommunikation

• Data flyder nedad

• Events går opad

Page 15: Angular2 workshop

Vigtige koncepter

• Classes

• Imports / exports (systemjs)

• Decorators

• Types

Page 16: Angular2 workshop
Page 17: Angular2 workshop

OBS: Systemjs

Page 18: Angular2 workshop

obs: ingen semikolon

Page 19: Angular2 workshop
Page 20: Angular2 workshop
Page 21: Angular2 workshop

Typescript• Typescript giver dig hjælp undervejs. (brug en

editor der understøtter typescript)

• Typescript sørger for at alt det nye og smarte blir til alm. javascript som din browser kan forstå.

• Compileren kan overvåge dine filer og automatisk compile hver gang du gemmer.

Page 22: Angular2 workshop
Page 23: Angular2 workshop

Angular• Components

• Dependency injection

• ngModules

• Services

• Routing

• Forms

• Directives

• Pipes

Page 24: Angular2 workshop

lets give it a try…

Page 25: Angular2 workshop
Page 26: Angular2 workshop

and now you do it…

Page 27: Angular2 workshop

Dagens opgave

• Byg en Angular2 app

Page 28: Angular2 workshop

Step 1

• quickstart

• liste component

• data fra service

• “hent flere” - paginering

OBS: Http er en observable

Page 29: Angular2 workshop

Step 2

• tilføj routing

• lav liste-side og detalje-side

Page 30: Angular2 workshop

Step 3

• Edit-side

• Lav favorit-liste

Page 31: Angular2 workshop

Forplejning

• Sodavand, øl, snacks undervejs

• Sandwiches ved 18.30tiden

Page 32: Angular2 workshop

og til de hurtige/øvede/dygtige

• Persist service-data

• Scoped styling med viewEncapsulation

• Lav et directive

• Experimenter med ChangeDetectionStrategy

• Byg json-parser til ?format=wookiee

• Interaktive lister med firebase

• Lav en produktions-bundle

• Server-rendering med Angular Universal

• Lav app’en mobil med nativescript eller React Native

Page 33: Angular2 workshop

Cheatsheet

https://github.com/filipbech/starsOfStarwars

Page 34: Angular2 workshop

Tutors

• Vi er nogen stykker der har arbejdet med Angular2 før og som kan svare på (nogen) spørgsmål. Brug det…

Page 35: Angular2 workshop

quickstart

• clone angular/quickstart repo (https://github.com/angular/quickstart/)

• cd quickstart

• npm install

• npm start

Page 36: Angular2 workshop

Fun open APIs• swapi.co

• wine.com

• brewerydb.com

• developer.marvel.com

• pokeapi.co

Page 37: Angular2 workshop

Routing• Routeren indsætter en component. Den injecter

router-instancen og subscriber til observablen for at få routeParams.

• <router-outlet></router-outlet>

• <a [routerLink]=“[‘/characters']">Characters</a>

• RouteConfig leveres som et custom ModuleWithProviders som import til rootModulet (kig i cheatsheetet)

• Guards: CanActivate, CanDeactivate, Resolve

Page 38: Angular2 workshop

Forms

• Templatedriven (som vi kender det fra ng1 -Ng*)

• Modeldriven (validering mm i controlleren - Form*)

• (kig i cheatsheetet)

Page 39: Angular2 workshop

• Tak for idag

Page 40: Angular2 workshop