Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

40
AngularJS 2.0 Kochaj albo rzuć Andrzej Herok

Transcript of Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Page 1: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

AngularJS 2.0Kochaj albo rzuć

Andrzej Herok

Page 2: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Dlaczego 2.0 ?

Page 3: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Postęp standardów WEB

- Shadow DOM- Object.observe()- Modułowość ES6

Dlaczego 2.0?

Page 4: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Wydajność

- 1-way binding- component caching

Dlaczego 2.0?

Page 5: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Uproszczenie konceptów

Angular 1.x- Module

- Controller- Service- Factory

- Directive- ...

Angular 2- Component

- Directive- ?

Dlaczego 2.0?

Page 6: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Angular ”JS” ?

Page 7: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

ECMAScript 5

var x;

Date.now()

['a','b','c'].indexOf('b')

Angular “JS”?

Page 8: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

ECMAScript 6class Bike extends Vehicle {

constructor(name) {

this.name = name

}

}

“Hello, my name is ${name}.”

export var pi = 3.141593;

Angular “JS”?

Page 9: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

TypeScript

function addClass(selectors:Array<string>) { ... }

class Vehicle {

model : string;

}

Angular “JS”?

Page 10: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

ATScript

@Directive({ selector: '[blink]'})class Blink { constructor(element:Element){

}

}

Angular “JS”?

Page 11: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

ATScriptAngular “JS”?

Page 12: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Wsparcie przeglądarek?

traceur

https://github.com/google/traceur-compiler

Page 13: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Wsparcie przeglądarek?//ATScript

@Directive({ selector: '[blink]'})class Blink {

constructor(element:Element){

}

}

Page 14: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Wsparcie przeglądarek?//ES5

function Blink(element){

}

Blink.annotations = [

new Directive({selector: '[blink]'})

];

Blink.parameters = [Element];

Page 15: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Komponent

Page 16: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Komponent@Component({

selector: 'todo-app',

template: new TemplateConfig({

url: '/todos.html'

})

})

class TodoApp {

todos;

construct () {

this.todos = ['Item1', 'Item2'];

}

}

Page 17: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Śledzenie zmian

http://victorsavkin.com/post/86909839576/angulardart-1-0-for-angularjs-developers

Page 18: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Router

Page 19: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Router

- budowa komponentowa (child apps)

Page 20: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Router

- budowa komponentowa (child apps)- convention over configuration

Page 21: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Router

- budowa komponentowa (child apps)- convention over configuration- Screen Activation (canActivate, commands)

Page 22: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Router

- budowa komponentowa (child apps)- convention over configuration- Screen Activation (canActivate, commands)- History

Page 23: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Router

- budowa komponentowa (child apps)- convention over configuration- Screen Activation (canActivate, commands)- History- 1.4 port!

Page 24: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Routerangular.module('app', ['ngNewRouter']) .controller('AppController', [ '$router', AppController]);

function AppController ($router) { $router.config([ {path: '/', component: 'home', title: 'welcome'} {path: '/detail/:id', component: 'detail' } ]);}

components/detail/detail.htmlcomponents/detail/detail.js

Page 25: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

szablony

Page 26: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

local vars

<input #newname type="text">

<button (click)="changeName($event, newname.value)"

[disabled]="newname.value == 'David'" >Change name</button>

Page 27: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

events

<button (click)="changeName(newname)">Change name</button>

Page 28: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

properties

<img [src]="item.image"><span>{{ item.name }}</span>

<div [class.hidden]=”item == ‘Dawid’”>{{ item }}</div>

Page 29: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

directives

<div [ng-repeat|item]="items">

Page 30: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

zone.js

Page 31: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

zone.jsfunction(){

// start

a(); setTimeout(b, 0); setTimeout(c, 0); d(); // end

}

// start

ad// end

b ?c ?

Page 32: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

zone.jszone.run(function(){ // start a(); setTimeout(b, 0); setTimeout(c, 0); d(); // end

})

// start

adbc// end

Page 33: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Jak wykorzystać Zone w Angular?

$scope.$digest()

Firebase?

Page 34: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

podsumowanie

Page 35: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

podsumowanie

- mało konkretów

Page 36: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

podsumowanie

- mało konkretów- drastyczne zmiany

Page 37: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

podsumowanie

- mało konkretów- drastyczne zmiany

- brak kompatybilności wstecz

Page 38: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

podsumowanie

- mało konkretów- drastyczne zmiany

- brak kompatybilności wstecz- “udziwniona” składnia HTML

Page 39: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

podsumowanie

- mało konkretów- drastyczne zmiany

- brak kompatybilności wstecz- “udziwniona” składnia HTML

- Niestandardowy język

Page 40: Uszanowanko Programowanko #2 - Angular 2.0 Kochaj albo rzuć!

Dziękuję!