Angular9.1の新機能

Angular 9.1が登場し、ngcc互換性コンパイラーのパフォーマンスと並行性が改善されました。Ivyのコンパイルとレンダリングのパイプラインも注目を集め、パフォーマンスが向上しました。

3月25日に公開されたAngular9.1は、2020年2月6日に製品リリースとして利用可能になったAngular 9.0リリースに続きます。人気のあるTypeScriptベースのフレームワークへのバージョン9.0のアップグレードは、デフォルトでアプリケーションをIvyコンパイラとランタイムに切り替えます。

Ivyは、より高速なAOTコンパイルに加えて、より小さなバンドルサイズ、より高速なテスト、およびより優れたデバッグを提供します。改善されたCSSクラスとスタイルのバインディングは、型チェック、ビルドエラー、ビルド時間の改善とともに、Ivyでも紹介されています。また、Angular 9の一部はですng update。これは 、アプリケーションとその依存関係を更新するための、より信頼性が高く有益なツールになることを約束します。 

Angularは依存性注入を提供します。これは、コンポーネントを構成するためのHTMLテンプレートの使用とともに、アプリケーションのデータサービスを組み立てるのに特に役立ちます。Angularでは、開発者はプログラムの必須部分のTypeScriptコードに接続するHTMLコンポーネントを使用してコンポーネントを作成します。

Angular9.1以前のリリースをダウンロードする場所

Angularの製品リリースはGitHubからダウンロードでき、ベータ版もダウンロードできます。Angular 9にアップグレードするためのガイドとともに、Angularアップデートガイドが公開されました。

Angular9.1の新機能

  • ngccのパフォーマンスの最適化、およびngccmonorepoユースケースの同時実行性と信頼性の向上。NPMポストインストールスクリプトは推奨されなくなりました。ngccでは、別のプロセスにロックファイルがある場合、非同期処理が一時停止されます。また、ngccを使用すると、ソースマップフラット化機能は、ソースマップによって接続されたソースファイルのツリーをロードし、それらを単一のソースマップにフラット化することができます。このソースマップは、最終的に生成されたファイルから、中間ソースマップによって参照される元のソースに直接マップされます。
  • TypeScript3.8がサポートされています。
  • i18nを介した国際化により、RTLロケール情報がサポートされるようになりました。
  • Ivyのパフォーマンスは、リスナー命令の未使用のイベント引数を削除することで改善されました。以前は$event、リスナー式で使用されていなくても、Ivyは引数を生成していました。これにより、不要なバイトが生成される可能性があります。また、Ivyテンプレートチェックの互換性修正が含まれています。

Angular9.0の新機能

Ivyをデフォルトにする以外に、Angular9.0には次の新機能と改善点が含まれています。

  • サービスprovidedInを作成するためのの新しいオプションには、ページ上のすべてのアプリケーションで共有される特別なシングルトンプラットフォームインジェクターでサービスを利用できるようにする、およびトークンを挿入するすべてのモジュールで一意のインスタンスを提供するが含まれます。@Injectableplatformany
  • コンポーネントハーネス。単体テストのスコープが正しく、脆弱性が少ないことを確認します。実装の詳細は抽象化されています。
  • アプリケーションにYouTubeとGoogleマップの機能を含めることを可能にする新しいコンポーネント。
  • TypeScript3.7とTypeScript3.6がサポートされています。
  • eventListenersのパフォーマンスが改善されました。
  • のデフォルトの通貨コードCurrencyPipeが構成可能になりました。
  • Ivyレンダラーのパフォーマンスを向上させるために、情報がすでに利用可能である場合、繰り返しのグローバル状態アクセスはi18n命令から削除されます。Ivyは、余分なSafeDetectionコードを削除することでパフォーマンスも向上します。また、@ angular / localizeパッケージはを介してAngularCLIプロジェクトに追加できますng add
  • Ivyレンダラーの場合も、不明なコンポーネントに対してより適切なエラーメッセージが表示されます。さらにlocalize-translate、ソースロケールを指定できる新しいフラグが追加されました。
  • コアのパフォーマンスを向上させるために、Ivyレンダラーでサニタイズをツリーシェイク可能にします。 
  • また、Ivyでは、テンプレートの型チェックがts.Diagnosticsを生成するように変更されました。これにより、AngularコンパイラがネイティブのTypeScript診断と、最適ではなかった独自の内部診断形式の両方を生成するという設計上の問題が修正されます。
  • また、コアについては、Angularは、指定された移行計画に従って、新しい移行回路図を追加します。
  • NgFormSelectorWarningセレクタは削除されました。
  • ngcc(Angular互換性コンパイラ)の場合、装飾されていない子クラスの移行が追加されました。
  • Ivy、コンパイラ、コア、言語サービス、ngcc、およびBazelに対して、多数のバグ修正が行われました。

Angular8.2の新機能

2019年8月にリリースされたAngularバージョン8.2には次のものが含まれます。

  • コンパイラのパフォーマンスを向上させるために、オブジェクトのクローンを作成している間、プロトタイプからのコピーは回避されます。これにより、for-inループが使用されたApplySourceSpanTransformerクラスのクローン関数が更新され、プロトタイプから独自のプロパティにコピーされ、より多くのメモリが消費されます。
  • TypeScript3.5のサポート。
  • Kytheツールで使用されるターゲットをIvyレンダラーでコンパイルします。これにより、推移的な依存関係への相互参照が生成されないという問題が解消されます。これは、そのような依存関係がレガシーコンパイラによってどのようにロードされるかによるものです。
  • $elementアップグレードされたコンポーネントtemplatetemplateURL機能のサポート。
  • Bazelの場合、ユーザーはAngularコンパイル用のカスタムBazel CompilerHostを渡すことができるようになり、TypeScriptコンパイラホストのオーバーライドをサポートします。
  • ngcBazelの下のメモリ制限を2GBから4GBに増やすなど、いくつかのバグ修正。

Angular8.1の新機能

  • ハイブリッドアプリの完全なブートストラップを必要とせずに、AngularおよびAngularJSインジェクターを接続するアップグレード/静的ライブラリ用のテストヘルパーが提供されます。
  • Angularが以前にパフォーマンステストでサポートしていたWebTracingFrameworkとの統合の非推奨。Angular開発チームは、統合が維持されておらず、今日のほとんどのAngularアプリケーションでは機能しない可能性があると指摘しました。 
  • 実装definitionAndBoundSpan今よりも好まれますdefinition。の実装はdefinitionリファクタリングされ、簡素化されました。
  • platform-webworkerAPIの非推奨。このサポートを含めることは、Webコンテンツがバックグラウンドスクリプトを実行するために、Webワーカーでアプリケーション全体を実行しようとする実験的なものでした。Angularの支持者はもはやこれを行おうとはしません。

Angular 8.1は、BazelビルドツールとAngularコアおよびルーターのバグ修正も提供します。

Angular8.0の新機能

2019年5月にリリースされたAngular8の改善点は、次のとおりです。