Top Banner
Angular 2 Overview Jesse Warden | Accenture | OpenSlava 2015
77

Angular 2 overview

Jan 08, 2017

Download

Technology

Jesse Warden
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Angular 2 overview

Angular 2 OverviewJesse Warden | Accenture | OpenSlava 2015

Page 2: Angular 2 overview

What

• Angular 2 Overview

• Programming Languages

• Highlights

Page 3: Angular 2 overview

Angular 2 Overview

• From Google & Microsoft

• Open Source Community

• It’s in Alpha

Page 4: Angular 2 overview

Alpha?

• Developer Preview

• You can play with right now at angular.io

• API Keeps changing…

Page 5: Angular 2 overview

Embraces Web Standards

• ShadowDOM

• WebWorkers

• Native

Page 6: Angular 2 overview

ShadowDOM• Removing div soup. • Performance. • Less ID collisions. • "Semantic" • Encapsulated JS & CSS

Page 7: Angular 2 overview

WebWorker• "Threads" • JavaScript won’t block UI thread

HTML / UI

JS / Logic

Page 8: Angular 2 overview

Native• Declarative UI means no need for

HTML • Supports web compoents • … and native components

Page 9: Angular 2 overview

Goals

• Improve on Version 1

• Embrace Web Components

• Embrace Web Standards

Page 10: Angular 2 overview

Languages

You have options:

• TypeScript

• Dart

• ES6

• ES5

Page 11: Angular 2 overview

TypeScript

• Microsoft’s ES6

• opt-in strong-typing via compiler

• interop with other JavaScript via d.ts

Page 12: Angular 2 overview

Why TypeScript?

• strong-typing for larger code bases & teams

• runtime support via Assert.js

• a lot of syntax sugar

• invented by Anders Hejlsberg (Turbo Pascal, Delphi, and C#)

• output is readable

Page 13: Angular 2 overview
Page 14: Angular 2 overview

Why not?

• … it’s not JavaScript, it’s TypeScript.

• Bet on JavaScript.

Page 15: Angular 2 overview

Dart

• Platform for the web & server by Google

• Use ES7, today, on client and server

• Opportunity to make a better web language

Page 16: Angular 2 overview

Why Dart?

• pub: better npm (… and so was BetaMax, and HDVideo)

• Dart: better Javascript

• DartVM: optimized for language

• dart2js: tree shaking, smart compiler, optimized JS

Page 17: Angular 2 overview
Page 18: Angular 2 overview

Why not?

• Interop is not as easy as TypeScript

• Node.js adverse

• Convert npm to pub? That’s not happening…

Page 19: Angular 2 overview

ES6

• Next version of JavaScript

• Many parts implemented today

• Many already have polyfills

Page 20: Angular 2 overview

Why?

• The Standard.

• OOP: Classes.

• Modules: Standards coming finally.

• All features work in all other languages mostly.

• Node’s going there too.

Page 21: Angular 2 overview
Page 22: Angular 2 overview

Why not?

• Design by committee blows

• Business innovation is faster than standards boards

• What good is power if you don’t use it?

Page 23: Angular 2 overview

ES5

• Also known as JavaScript.

Page 24: Angular 2 overview

Why?

• Transpiler adverse.

• Team skill set.

• Company that embraced ES5.

Page 25: Angular 2 overview

Why not?

• Newer, better languages & tooling out there.

• … including JavaScript. ES6.

• If you want functional, use ClojureScript.

Page 26: Angular 2 overview

Module System?

• No standard yet. You can use any for now.

• Browserify

• SystemJS

• WebPack

• JSPM

Page 27: Angular 2 overview

What’s Changed?Angular 1 vs Angular 2 Alpha

Page 28: Angular 2 overview

Components

• Directives are now Components

Page 29: Angular 2 overview

Angular 1 vs 2 Example

Page 30: Angular 2 overview
Page 31: Angular 2 overview

React Example

Page 32: Angular 2 overview
Page 33: Angular 2 overview

Polymer component

Page 34: Angular 2 overview
Page 35: Angular 2 overview

Class

• Controllers are now a Class

Page 36: Angular 2 overview

Angular 1 Controller vs 2

Page 37: Angular 2 overview
Page 38: Angular 2 overview

Properties Lifecycle

Page 39: Angular 2 overview
Page 40: Angular 2 overview

Bindings to Inject

Page 41: Angular 2 overview
Page 42: Angular 2 overview

Host Element

Page 43: Angular 2 overview
Page 44: Angular 2 overview

Templates

• Templates are now Views

Page 45: Angular 2 overview

v1 Template vs v2

Page 46: Angular 2 overview
Page 47: Angular 2 overview

2 way binding

Page 48: Angular 2 overview
Page 49: Angular 2 overview

Parent -> Child Child -> Parent

App

Workouts Calories

Stepper Stepper

[value]="some exp"

[value]="some exp"

App

Workouts Calories

Stepper Stepper

[update]="onChange()"

(change)="onChange()"

Page 50: Angular 2 overview

ng-repeat vs *ng-for

Page 51: Angular 2 overview
Page 52: Angular 2 overview

Local Variables

Page 53: Angular 2 overview
Page 54: Angular 2 overview

overview of digest vs. tree invalidation

Page 55: Angular 2 overview

bindings treated as immutable

Page 56: Angular 2 overview

2 digest loops; if you set data in 2nd zone, it’ll throw an exception letting you know you’ve got an infinite loop

Page 57: Angular 2 overview

Zone.js

Page 58: Angular 2 overview

Directives

• Can still create directives that don’t have a View

Page 59: Angular 2 overview

Services, Factories, etc

• Services, Factories, Filters, etc. are now classes

• You still inject via DI

• if not using classes, still have new DI functionality

Page 60: Angular 2 overview
Page 61: Angular 2 overview

New Router

• ngRoute is now ‘New Router’

• same one they introduced in 1.4

Page 62: Angular 2 overview
Page 63: Angular 2 overview

John Papa’s Angular 2 Sample https://github.com/johnpapa/angular2-go

Page 64: Angular 2 overview

HTTP

• $http is now HTTP class with upgraded functionality

• slides on streams: https://docs.google.com/file/d/0B8xUu4uAO8rnbVBkd0l6M285aFk/edit

• Sample code for streams: https://gist.github.com/JesterXL/d2f89ccb17b26574b233

Page 65: Angular 2 overview
Page 66: Angular 2 overview

Dependency Injection

• new functionality!!!!1111oneonene

Page 67: Angular 2 overview
Page 68: Angular 2 overview
Page 69: Angular 2 overview
Page 70: Angular 2 overview
Page 71: Angular 2 overview
Page 72: Angular 2 overview
Page 73: Angular 2 overview
Page 74: Angular 2 overview
Page 75: Angular 2 overview

Conclusions

• Angular 2 is Alpha, not for production

• API still changing

• but you can now play with Developer Preview

• TypeScript, Dart, ES6, and/or ES5

• ES5 examples are lagging, but coming

Page 76: Angular 2 overview

Resources• Angular 2 site: https://angular.io/

• John Papa simple repo: https://github.com/johnpapa/angular2-go

• Thomas Manion WebPack repo: https://github.com/1337programming/angular2.0-Wepack-App

• Victor Savkin: http://victorsavkin.com/

• http://blog.thoughtram.io/

• TypeScript: http://www.typescriptlang.org/Handbook

• ES6: https://github.com/lukehoban/es6features

Page 77: Angular 2 overview

Thanks!• Jesse Warden

[email protected]

[email protected]

• @jesterxl

• http://jessewarden.com/blog/

• https://www.youtube.com/user/jesterxl