Googleは最近Angular 13のリリースを発表した。人気のシングルページアプリケーションフレームワークだ。これは、Angular9でのIvyエンジンのリリース以降、着実に小さな改善の流れを続けている。
Angular 13では、コンポーネントAPIがアップデートされ、ComponentFactoryResolverファクトリを使用する必要がなくなる。代わりに、ViewContainerRef.createComponentを使って新しいコンポーネントを作成できるようになり、コンポーネントを動的に作成するために必要な定型コードが削減される。
さらに、Angular9でIvyに置き換えられたレガシーの「View Engine」はようやく段階的に廃止される。このプロセスは当初は遅れていた。ライブラリの運用担当者に新しいエンジンに移行する機会を与えるためだ。この移行により、Angular互換性コンパイラへの依存度が低下し、将来的にはより高速なビルドが可能となる。
Angular 13ではまた、Internet Explorer 11が廃止される。Internet Explorerの正式な保守終了日はまだ数か月先だが、使用統計が少ないこととメンテナンスのオーバーヘッドを考慮して、Angularチームは早期の廃止を進めることにした。
IE11を引き続きサポートするプロジェクトでは、引き続きAngular 12を使用することを勧める。Angular12は、IE11の計画された保守終了日を過ぎてもサポートを受ける。
コンパイルの点では、Angular CLIは新しいAngular 13プロジェクトに対してデフォルトで永続的なビルドキャッシュを使うようになる。ほとんどの場合、この変更により、ビルド時間が最大68%向上する。
既存のプロジェクトでは、angular.jsonの設定に次の変更を加えることで、この機能を有効にできる。
"cli": {
"cache": {
"enabled": true,
"path": ".cache",
"environment": "all"
}
}
Angular 13では、デフォルトでTestBedに対する新しいティアダウンプロセスも利用できる。この機能はAngular 12.1.0で導入された。この新しいプロセスは、すべてのテストの後にDOMをクリアするため、より独立したテストとメモリフットプリントの削減につながる。
既存のプロジェクトでは、TestBed.initTestEnvironmentメソッドを次のコードで更新することで、この機能を有効にできる。
beforeEach(() => {
TestBed.resetTestEnvironment();
TestBed.initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting(),
{
teardown: { destroyAfterEach: true }
}
);
});
最後に、Angular 13はTypeScript 4.4とRxJS 7.4を採用している。TypeScriptは既存のアプリケーションに対して自動的に更新される。一方でRxJSには大きな変更がいくつか含まれているため、手動でアップグレードする必要がある。
多くの場合、Angularプロジェクトのアップグレードは簡単だが、開発者はhttps://update.angular.io/にあるインタラクティブアップグレードガイドを使用することが推奨されている。
完全なリリースの発表については、Angularの公式ブログ投稿にアクセスしてください。
Angularは、MITライセンスの下で利用可能なオープンソースソフトウェアである。Angular GitHubリポジトリを介したコントリビューションを歓迎します。