2. Perch竪 Angular 2.0?
AngularJS 1.0 risale al 2009
Il web sta cambiando:
ES5 -> ES6
Sempre pi湛 orientato al mobile
Punti Critici Community
Lazy Loading
Performance (amore e odio con il binding)
Troppi concetti - apprendimento a singhiozzo
3. ECMAScript Harmony
1999 ECMAScript 3
2008 abbandono della versione 4 (troppo ambiziosa)
2009 esce ECMAScript 5 (poche novit)
2015 si attende ECMAScript 6 (Harmony)
4. ES6 - New Features
classes
iterators + for..of
modules
promises
math + number + string + array + object APIs
...
5. ES6 - Non ancora supportato
Non 竪 ancora stato presentato ES6
I browser attuali supportano ES5
Traceur per usare le feature ES6 su ES5
6. Pensato per il mobile
Best practice per applicazioni mobile/desktop
Pensarla per il mobile
Estenderla per il desktop
AngularJS 2.0 竪 pensato per il mobile (ng-conf 2015)
7. Lazy Loading
AngularJS 1.x non supporta il lazy loading
Da sempre una delle feature pi湛 desiderate
Bisogna scaricare intera libreria
Leggera per app desktop non per mobile
14. Development
AtScript 竪 un linguaggio di scripting sviluppato da
Google
TypeScript 竪 un linguaggio di scripting creato da
Microsoft
AtScript 竪 TypeScript (ng-conf 2015)
15. Development
Supporter
ES5
ES6
TypeScript
E linguaggi javascript compilati come
CoffeeScript
ClojureScript
20. Angular2 application
4 steps:
1. Creare un entry point
2. Caricare la libreria Angular allinizio del file
3. Creare un componente di root dellapplicazione
4. Fare il Bootstrap di Angular
23. Bootstrap
import {Component, View, bootstrap} from 'angular2/angular2'
...
bootstrap(AppComponent);
Cosa si deduce da questa sintassi? Lazy Loading!!!
24. Component
Angular applications are a tree of nested components. You always begin with a top-level component.
You add child components by including them in the parent's template. [angular.io]
@Component({
selector: 'my-app'
})
@Component: annotation consente la dichiarazione di un componente.
selector definisce il tag del componente
class AppComponent {
constructor() {}
}
class: specifica la logica applicativa del componente
...
<my-app></my-app>
...
25. View
La view annotation consente la definizione dellHTML che rappresenta il modello
@View({
templateUrl: 'helloTemplate.html'
})
template: stringa HTML
templateUrl url del template
27. Migrazione a 2.0
Crearlo senza vincoli con il passato
Renderlo quindi compatibile con le vecchie API
28. About me
Sito: http://www.vconte.it/
Email: vitconte@gmail.com
LinkedIn: http://www.linkedin.com/pub/vittorio-conte/30/29a/191
AngularJS Italia
LinkedIn: https://www.linkedin.com/groups/AngularJS-Italia-7442742
Twitter: @AngularJSItalia