Angular Github Change Log Document
https://github.com/angular/angular/blob/master/CHANGELOG.md
RC5 Bug Fixes
core: support components without a selector
http: convert objects passed to requests into a string
RC5 Code Refactoring
core: change bootstrap of modules and names of platforms
core: deprecate coreBootstrap
, PLATFORM_PIPES/DIRECTIVES
providers and ComponentResolver
RC5 Features
core: introduce [@AppModule](https://github.com/AppModule)
http: add support for blob as a response type
http: add options method to Http
i18n: merge translations
NgStyle: add support for the style.unit notation
RC5 Breaking Changes
rc4 에서 rc5로 달라진 점
http://happygrammer.tistory.com/130
- ngModule에서 dependency를 관리하고, 실제 사용하는 dependency를 한 눈에 볼 수 있다. 뿐만 아니라, 코드도 더 간결해진다. 이렇게 할수 있는 이유는 ngModule이 JavaScript의 module과 같이 module 단위로 scope를 갖기 때문에, ngModule에 명시된 Component들은 ngModule에 명시된 dependencie 객체들(directive, pipe, service, component)을 자유롭게 사용할 수 있다.
- ngModule에서 쓰는 모든 자원을 declarations이나 providers로 수동으로 명시 해줘야하는 번거로움이 있다.
- ngModule은 라우터를 통해 느린로딩을 지원한다.
Angular 공식 블로그
개발자의 생산성, payload의 small size로 최적화된 프레임워크,사용 사례의 넓은 범위에 걸쳐 검증된 안정성이다. ahead-of-time 컴파일과 내장된 lazy-loading으로 browser, desktop, mobile 환경에서 fastest, smallest하게 배포할 수있다. 이번 릴리즈는 Angular CLI와 styleguide와 함께 개발자의 생산성에 큰 개선을 나타낸다. Angular 1은 웹을 개발하는 방법의 문제를 해결했다. 응용 프로그램 개발자가 직면한 도전과제와 응용 프로그램이 지원해야만 하는 장비의 정교함 모두가 상당히 변경되었다. Router, Forms 이외의 핵심 API들의 이번 Release에서 당신은 어떤 플랫폼에 대해서도 놀라운 응용 프로그램을 구축 할 수 있다. Angular는 모듈형이며 유연하기 때문에 당신만의 접근법을 선호하는 경우 타사 라이브러리를 사용하거나 직접 작성할 수 있다.
- API에 대한 버그 수정 및 non-breaking 기능 안정화
Bug fixes and non-breaking features for APIs marked as stable - 사용 사례와 관련된 자세한 가이드 및 실시간 예제
More guides and live examples specific to your use cases - 더 많은 Animations의 동작
- Angular Material 2
- Experimental 에서 WebWorker로 이동
- Angular Universal을 위한 더 많은 기능과 언어 More features and more languages for Angular Universal
- 속도와 payload size 개선
내용 확인
- Support for @NgModule decorators
- FormsModule, RouterModule, and Material Design modules make it easier to use these libraries
- Ahead-of-time (AoT) compilation for components and services
- Lazy-loading support for the router
1 2 3 4 5 6 | @NgModule({ imports: [ BrowserModule ], declarations: [ MyComponent ], bootstrap: [ MyComponent ] }) class MyAppModule {} | cs |
내용 확인
AngularJS AoT
Flow of events with Ahead-of-Time Compilation
we get through the following steps:
- Development of Angular 2 application with TypeScript.
- Compilation of the application with
ngc
. ( ngc is a drop-in replacement for tsc. )- Performs compilation of the templates with the Angular compiler to TypeScript.
- Compilation of the TypeScript code to JavaScript.
- Bundling.
- Minification.
- Deployment.
Although the above process seems lightly more complicated the user goes only through the steps:
- Download all the assets.
- Angular bootstraps.
- The application gets rendered.
As you can see the third step is missing which means faster/better UX and on top of that tools like angular2-seed and angular-cli will automate the build process dramatically.
내용 확인
http://blog.mgechev.com/2016/08/14/ahead-of-time-compilation-angular-offline-precompilation/
AoT 컴파일이 중요한 3가지 이유
빨라진 렌더링
브라우저는 어플리케이션의 사전 컴파일된 버전을 다운로드한다. 어플리케이션이 처음 컴파일 할 때 까지 기다리지 않고 어플리케이션이 즉시 랜더링 할 수 있도록 브라우저가 실행코드를 로드한다.
적은 비동기 요청
컴파일러는 외부 HTML templates과 CSS style sheets를 별도의 응용 프로그램의 Ajax 요청을 제거한 javascript 내에서 즉시 처리한다.
작아진 Angular Framework 크기
어플리케이션이 이미 컴파일 되어있는 경우 Angular compiler를 다운로드 할 필요가 없다. 컴파일러는 Angular 자체의 약 절반을 차지한다. 그래서 응용 프로그램의 payload를 극적으로 줄일 수 있다.
AoT를 적용한 소스코드
1 2 3 | import { platformBrowser } from '@angular/platform-browser'; import { AppModuleNgFactory } from '../aot/app/app.module.ngfactory'; platformBrowser().bootstrapModuleFactory(AppModuleNgFactory); | cs |
Tree Shaking
A Tree Shaker walks the dependency graph, top to bottom, and shakes out unused code like dead needles in a Christmas tree. most of the reduction in small apps comes from removing unreferenced Angular features.
Tree Shaker는 위에서 아래로 종속성 그래프를 만들고 사용하지 않은 코드를 떨쳐낸다. 작은 앱의 감소의 대부분은 참조되지 않은 Angular의 기능을 제거함에서 비롯된다.
내용 확인
What does an Angular 2 Module look like ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; ... @NgModule({ declarations: [AppComponent, MyComboboxComponent, CollapsibleDirective, CustomCurrencyPipe], imports: [BrowserModule], providers: [UserService, LessonsService] }) export class ExampleModule { } | cs |
- the
@NgModule
annotation is what actually defines the module - we can list the components, directives and pipes that are part of the module in the
declarations
array - we can import other modules by listing them in the
imports
array - we can list the services that are part of the module in the
providers
array, but read further on why this should only be used in some cases
내용 확인
'ANgularJS 2.0+' 카테고리의 다른 글
Angular Release Breaking Changes (0) | 2016.11.07 |
---|---|
Angular Spring MVC (0) | 2016.10.07 |
[ANgular 2.0] Tutorial rc.5 migration (0) | 2016.09.29 |
[angularJS 2.0] @ViewChild,Dependency Injection (0) | 2016.09.21 |
[AngularJS 2.0] AngularJS 2.0 Tutorial4_http (1) | 2016.09.19 |