Angular 2 - a New Hope

53

Transcript of Angular 2 - a New Hope

Page 1: Angular 2 - a New Hope
Page 2: Angular 2 - a New Hope
Page 3: Angular 2 - a New Hope

Angular 2Sami Suo-Heikki19.5.2016

Page 4: Angular 2 - a New Hope

What is Angular 2?

Page 5: Angular 2 - a New Hope

What is Angular 2?JavaScript Framework

Cross platform

Fully component based

Built from the ground up with TypeScript

Native ES6 modules

Supports server-side prerendering

Page 6: Angular 2 - a New Hope

One framework.Mobile and Desktop.

Page 7: Angular 2 - a New Hope
Page 8: Angular 2 - a New Hope

Agenda for today

Architecture of Angular 2 app

Build your application with Angular CLI

Comparison to other JS frameworks

Useful tools

Page 9: Angular 2 - a New Hope

Architecture of Angular 2 app

Component

Binding

Service

Router

Directive

Page 10: Angular 2 - a New Hope

ComponentEncapsulate the template, data and the behaviour of a view.

Page 11: Angular 2 - a New Hope

Component

import { Component } from '@angular/core';

@Component({ selector: 'hello-world', template: 'Hello {{name}}!'})export class HelloWorldComponent { constructor() { this.name = 'World!'; }}

Page 12: Angular 2 - a New Hope

Component

import { Component } from '@angular/core';

@Component({ selector: 'hello-world', template: 'Hello {{name}}!'})export class HelloWorldComponent { constructor() { this.name = 'World!'; }}

Page 13: Angular 2 - a New Hope

Component

import { Component } from '@angular/core';

@Component({ selector: 'hello-world', template: 'Hello {{name}}!'})export class HelloWorldComponent { constructor() { this.name = 'World!'; }}

Page 14: Angular 2 - a New Hope

Component

import { Component } from '@angular/core';

@Component({ selector: 'hello-world', template: 'Hello {{name}}!'})export class HelloWorldComponent { constructor() { this.name = 'World!'; }}

Page 15: Angular 2 - a New Hope

Component

Component Dom

Page 16: Angular 2 - a New Hope

Binding

Component Dom

name = “World” <h1> {{name}} </h1>

Page 17: Angular 2 - a New Hope

Binding

Component Dom

onClick() { ...}

<input (click)=”onClick()”>

Page 18: Angular 2 - a New Hope

Two-way data binding

<input [(value)]="todo.text">

Page 19: Angular 2 - a New Hope

ServiceReusable data service in your application.

Page 20: Angular 2 - a New Hope

ServiceData AccessLoggingBusiness LogicConfiguration

Page 21: Angular 2 - a New Hope

RouterResponsible for navigation.

Page 22: Angular 2 - a New Hope

Router

@Routes([ {path: '/my-route', component: MyRouteComponent}, {path: '/my-other-route', component: MyOtherComponent},])

Page 23: Angular 2 - a New Hope

Router

@Routes([ {path: '/my-route', component: MyRouteComponent}, {path: '/my-other-route', component: MyOtherComponent},])

Page 24: Angular 2 - a New Hope

Router

@Routes([ {path: '/my-route', component: MyRouteComponent}, {path: '/my-other-route', component: MyOtherComponent},])

Page 25: Angular 2 - a New Hope

DirectiveModify DOM elements and/or extend their behaviour.

Page 26: Angular 2 - a New Hope

@Component({ selector: 'my-app', template: ` <vaadin-pie-chart> … </vaadin-pie-chart> `})

Page 27: Angular 2 - a New Hope

@Component({ selector: 'my-app', template: ` <vaadin-pie-chart> … </vaadin-pie-chart> `, directives: [VaadinCharts,DataSeries]})

Page 28: Angular 2 - a New Hope

@Component({ selector: 'my-app', template: ` <vaadin-pie-chart> … </vaadin-pie-chart> `, directives: [VaadinCharts,DataSeries]})

Page 29: Angular 2 - a New Hope

Build your app with Angular CLIcli.angular.io

Page 30: Angular 2 - a New Hope

Angular CLI

1. npm install -g angular-cli2. ng new PROJECT_NAME3. ng serve4. ng generate route my-hero5. ng build

Page 31: Angular 2 - a New Hope

(Demo with Angular CLI)

Page 32: Angular 2 - a New Hope

Comparison to other frameworks

Page 33: Angular 2 - a New Hope

vs

Page 34: Angular 2 - a New Hope

Simplicity

Page 35: Angular 2 - a New Hope

Simplicity

Page 36: Angular 2 - a New Hope

Simplicity

Page 37: Angular 2 - a New Hope

Simplicity

Functionality

Page 38: Angular 2 - a New Hope

Simplicity

Functionality

Page 39: Angular 2 - a New Hope

Simplicity

Functionality

Page 40: Angular 2 - a New Hope

Simplicity

Functionality

Convenience

Page 41: Angular 2 - a New Hope

Simplicity

Functionality

Convenience

Page 42: Angular 2 - a New Hope

Simplicity

Functionality

Convenience

Page 43: Angular 2 - a New Hope

vs

Page 44: Angular 2 - a New Hope

Simplicity

Functionality

Convenience

Page 45: Angular 2 - a New Hope

Simplicity

Functionality

Convenience

Page 46: Angular 2 - a New Hope

Simplicity

Functionality

Convenience

Page 47: Angular 2 - a New Hope

Simplicity

Functionality

Convenience

Page 48: Angular 2 - a New Hope

Useful tools

Page 49: Angular 2 - a New Hope

augury.angular.io

Page 50: Angular 2 - a New Hope

angular.io/styleguide

Page 51: Angular 2 - a New Hope

cli.angular.io

Page 52: Angular 2 - a New Hope

mobile.angular.io

Page 53: Angular 2 - a New Hope

May the be with you