Angular 4 уже доступен!

Angular 4 уже доступен!

Angular 4 - незаметные изменения - уже доступна. Данная версия обратно совместим с переложениями которые были написаны на 2.х.х.

Данный релиз включает некоторые существенные улучшения и функциональные возможности, над которыми работала команда Angular последние 3 месяца. Разработчики постарались сделать так, чтобы у разработчиков которые использует Angular, обновить свое приложение без проблем.

Что нового?

Маленький и быстрый

Как и обещали разработчики они сделали новый Angular меньшим и быстрым. Но конечно они не закончили над этим, и сможем наблюдать как они делать его еще лучше в ближайшие месяцы.

View Engine

Были внесены изменения в соответствии с тем, как выглядит AOT сгенерированный код. Эти изменения в большинстве случаев сокращают размер сгенерированного кода для ваших компонентов примерно на 60%. Чем сложнее ваши шаблоны, тем выше сбережения.

Вовремя релиза кандидата, разработчики сообщали, что после миграции на Angular 4 их bundles файлы уменьшились на 100 килобайт.

Вы можете прочитать больше про view engina в этой документации

Анимационный пакет

Функционал анимации был перемещен с пакета @angular/core в собственный пакет @angular/platform-browser/animations. Это позволить тем которые не использует анимацию в своем проекте сократить размер входящего bundle.

Новые фичи

Улучшены *ngIf и *ngFor

Синтаксис привязки шаблонов теперь поддерживает несколько полезных изменений. Теперь вы можете использовать синтаксис стиля if / else и назначать локальные переменные, например, при разворачивании требующего соблюдения.

<div *ngIf="userList | async as users; else loading">
  <user-profile *ngFor="let user of users; count as count" [user]="user">
  </user-profile>
 <div>{{count}} total users</div>
</div>
<ng-template #loading>Loading...</ng-template>

Angular Universal

Универсальный, это проект который позволяет разработчикам запускать Angular на сервере, и теперь тоже был обновлен совместно с Angular. Так как проект был создан сообществом, он был под их управлениям, но теперь команда Angular также взялась за данный проект и теперь совместно ведет его с сообществом. Данный релиз включает как внутривенный, так и внешний результат работы. Большая часть кода была размещена в @angular/platform-server

Чтобы узнать больше о преимуществах использования Angular Universal, взгляните на новый метод renderModuleFactory в @angular/platform-server или в демонстрационный репозиторий Rob Wormald’s. Дополнительная документация и примеры кода появится в скором времени.

Совместимость TypeScript 2.1 и 2.2

Angular был обновлен до более новой версии TypeScript. Это улучшит скорость ngc, и вы получите лучшую проверку типов во всем приложении.

Исходные карты для шаблонов

Теперь, когда возникает ошибка, вызванная чем-то в одном из ваших шаблонов, мы генерируем исходные карты, которые дают осмысленный контекст в терминах исходного шаблона.

Изменения в пакетах

Flat ES Modules (Flat ESM / FESM)

 Теперь поставляются сжатые версии модулей (сжатая версия кода в формате модуля EcmaScript, см. Пример файла). Этот формат должен помочь дрожанию деревьев, помочь уменьшить размер созданных пакетов и ускорить сборку, трансляцию и загрузку в браузере в определенных сценариях.

Узнайте больше о важности модулей Flat ES в разделе «Стоимость небольших модулей».

Экспериментальные сборки ES2015

Теперь также отправляются пакеты в формате ES2015 Flat ESM. Этот вариант является экспериментальным и не учитывается. Разработчики сообщили об экономии до 7% пула при объединении этих пакетов с Rollup. Чтобы опробовать эти новые пакеты, настройте вашу сборку  наборов инструментов, чтобы разрешить свойство es2015 в package.json над обычным свойством «module».

Экспериментальное Closure Compatibility

Весь код теперь имеет аннотации Closure, что позволяет использовать расширенные оптимизации Closure, в результате чего уменьшаются размеры пакетов и улучшается дрожь дерева.

Обновление до версии 4.0.0

Обновление до версии 4 так же просто, как обновлять ваши Angular зависимости до последней версии, и двойную проверку, если вы хотите анимацию. Это будет работать для большинства случаев использования.

На Linux / Mac:

npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest typescript@latest --save 

На Windows:

npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest --save

Затем запустите любую команду ng serve или команду npm start, которую вы обычно используете, и все должно работать.

Если вы используете на анимацию, импортируйте новый модуль BrowserAnimationsModule из @angular/platform-browser/animation в корневом модуле NgModule. Без этого ваш код будет компилироваться и запускаться, но анимация вызовет ошибку:

Imports from @angular/core were deprecated, use imports from the new package import { trigger, state, style, transition, animate } from '@angular/animations';

Мы начинаем работу над интерактивным руководством по обновлению Angular, если вы хотите получить дополнительную информацию о внесении необходимых изменений в приложение.

Известные вопросы

Одна из целей для версии 4 заключалась в том, чтобы сделать Angular совместимым с параметром strictNullChecks TypeScript, разрешив более строгое подмножество типов, подлежащих мандату. В течение периода RC было обнаружено, что для того, чтобы это могло функционировать должным образом во всех случаях, была проведена огромная работа, поэтому разработчики намеренно сделали 4.0 несовместимым с настройкой strictNullChecks, чтобы избежать нарушения работы приложения, которые в противном случае охотно принимали бы этот режим TypeScript, когда правильная поддержка размещается в 4.1 (#15432).

Что дальше?

Команда разработчиков находимся в процессе разработки дорожной карты на следующие 6 месяцев, следуя той же каденции, что и опубликованный график выпуска 2.x. Вы увидите обновления патча до 4.0.0, и команда уже начала работу с 4.1. Команда Angular продолжает работу над оптимизацией и минимизацией кода, и команда собираемся развивать экспериментальные возможности, такие как @angular/http, @angular/service-worker и @angular/language-service.

Только авторизованные пользователи могут оставлять комментарии

Чтобы оставить комментарий Вам нужно Зарегистрироваться или Войти в систему