-

   rss_rss_hh_new

 - e-mail

 

 -

 LiveInternet.ru:
: 17.03.2011
:
:
: 51

:


[ ] Angular 2

, 30 2017 . 14:49 +
, Angular 2. .

(Tobias Bosch) The Angular 2 Compiler. .


Google Angular, . , Angular . - .

, . , , , . , .

?


, ( , ..) .
angular2 compiler process
, . , . .

?


angular2 compiler agenda

: ? , .

, , , Angular 2 . , Angular 2 . , , , . . , .

, (Just In Time) (Ahead Of Time) .

: ?


: , . ? , , , . , AMP- Google? . .

, . . , , . .

, , . . . , , .


(switching a route).

, , . : .

?

- , . . , deep-tree. , . , . , .

angular2 compiler benchmarks

512 , . , . . view . .

?



, , .

angular2 compiler component

(template). , .

, , (template). , , ( ).



. HTML, - , , HTML.

angular2 compiler template

: , ? Angular . , . . .



angular2 compiler directives

CSS. , Angular , , - , .

, , , , .

ngModel. ngModel, .
. .

angular2 compiler directives

, , ngModel ngForm.

Angular?

ngForm, . , .

, .

, Angular, .

, . , .
, , -, - ?



, - , , HTML.



angular2 compiler template

, ?

. , . , . . , - , . , JSON . . , . , . , . (, english AST). . HTML.

?

angular2 compiler template

. , JSON . , . . . , . JavaScript, . for, , , . user.name propPath ( ), .

, , , , , .


? , ?

, . , .

, ? , undefined. , , . , .

Angular

angular2 compiler template

, . , , , , 14 . , .

, , ?

. , .

HTML, ? . Angular 1, Angular 2.

:

  1. . HTML .
  2. , Angular .

, . : , . . , , SVG, , , . , JavaScript, . , .

, HTML .

, ?

JSON , , : . .

ngModel, JSON . input, , ngModel . , , , ngModel, ngForm, .

HTML, , ? ?

HTML. DOM? -, innerHTML. -, . -, document.createElement.

. , innerHTML ? , element.cloneNode ? , element.createElement?

, . :

  • innerHTML . , , , DOM. , .

    angular2 compiler innerHTML

  • element.cloneNode , , . . , .

  • document.createElement . element.cloneNode. - , .

    angular2 compiler createElement

: , element.createElement DOM.

Angular 1, Angular 2. , , , , Angular. Angular, - , , , . , , user.name, .

, , , . innerHTML cloneNode, DOM. createElement createTextNode . . .

, createElement createTextNode, ( ).

-, . , . , , .

, DOM.



. , ngElement, DOM . . DOM.

angular2 compiler dependency hierarchy

DOM ?

, , . ?

angular2 compiler dependency hierarchy

ngElement document.createElement, , . , .

. ?

, - ( ) new , Map. Map (ngModel) .

: , , ( ). , .

, . . .

: . ?

binding, target Node. .
target , , , . .

angular2 compiler dependency binding

: , , target.

: , target .

angular2 compiler dependency binding

, try catch . , .

, . . .

angular2 compiler view

. , . . . , ng- dirty-check, .

. . ? , Angular 1. . , . Angular 1 .



angular2 compiler dependency second step

? ? ? .

-, . , , . , try-catch, , , , . , , . , .

. : Map ngElements.

angular2 compiler dependency second step

, DOM map? , , . -, map, . , , - - .

: : , 10 . inlinengElement, 10 , , 10 IF. ? .

, ?

, : , map. - 10 . , JavaScript VM. JavaScript VM ( ). JavaScript VM . , . . , .

, , , , ? . view cache, .

angular2 compiler view cache

, , . . . , , . hydrate dehydrate. DOM , , . . .



, , Baseline JavaScript . , deeptree. dirtyChecking. . . Angular 1 5,7.

angular2 compiler benchmarks

view cache. 2,7. , . . , .



. :

  1. ViewCache . , . , , ? , ? , . , , - . , , .

  2. : DOM . , . , , , . . . : , , . ViewCache, DOM. 2,7. ?


view

: view. ?
ngelement, ? . view - . InlineView, ? . ? , .

? .

angular2 compiler view



, , , , . , view. document.createElement, Node0 , document.createElement, Node1. , , , ? . . DOM.

angular2 compiler template



. . -, : , , . ngForm, ngModel.



, . , dirty-check. , JavaScript. this.component user.name. , user.name , , . . . . , Map, .

. , .

: ?

, - , . ? , 101 .

: DOM , DOM . , . , DOM, , DOM. .

angular2 compiler differences with first step

, ngelement, compileElement. . compileElement, compileView .

: DOM, , DOM. document.createElement, , , , this.document + document.createElement .

, appendChild, . -. , .

angular2 compiler differences benchmarks

, , . 2,7, 1,5. . ViewCache, -, . , . , . .

(Just in Time)

, (Just in Time) . , .

angular2 compiler jit

, : - , . , , view. , . , . :

  1. , . - , , . . , . , . .

  2. , , Angular . , , .

  3. . . , , . - - . , , .

  4. , (, ). , , . , Angular . .

  5. , , . ( , , ), - , :

    1. -, , , , .
    2. -, . , , . Clojure ( ), Google .

, , .

, , , view. . user.name, user.name, user.name . , , , 1, U, N. , . - user.name.

, , - user.name, . . , . , . , , .

(Ahead of Time)

, (Ahead of Time) . .

angular2 compiler aot
, , view .

, ( JavaScript), .

, : ( ), ( ). , . .

, view , , view. , , .

, . , .



, . , ? , . , .

ES5. , , , . require.js - .

, TypeScript :

  • -, ( ).
  • -, TypeScript. , , . , require.js, system.js, Google Clojure, .
  • , ES6 2016.

angular2 compiler aot output

ES6 2016?

, , . , , , , .

, , , . ES5 , TypeScript .

: , ( declare var name EL). var el TypeScript . ES5 .

. document ( ). createElement .

literal div, , , . , , . , . , , . .

, , . .

angular2 compiler aot decorator

? , - , cookies, cookies, - . . . .

. , ? ES5, .

, , ? . SomeDir .

, , . document. ?

, document, window . , . ( , ?) . - .

angular2 compiler aot decorator

, SomeDir decorators, , ( , ). . JSON , . , . JavaScript , , .

, , . , .

, .

angular2 compiler aot benchmarks

. . , , , Angular 2 . . gzip 144 49. , React 46.



, Angular, ngForm ngModel. ngModel ngForm.

angular2 compiler examples

NGC _node, TypeScript, TypeScript. , , . user.name. , . .

. , user.name wrongName. user.name, user. wrongName. , , TypeScript .

angular2 compiler example generated code

, . , TypeScript. .

, .

10 gzip. 25 , . , , Baseline. , , , Baseline.

. , . .


, .
.
, , (AST). , .
, document.createElement Angular.
, .
, ( , , , ) . .
(Ahead Of Time) (Just In Time) , , .
, . .

.

Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/329782/

:  

: [1] []
 

:
: 

: ( )

:

  URL