ホームページ ウェブフロントエンド jsチュートリアル Angular の最新化: Angular 19 の新機能

Angular の最新化: Angular 19 の新機能

Nov 30, 2024 pm 02:00 PM

Modernizing Angular: What

Angular 19 が正式に登場しました。これには、開発者のエクスペリエンス、パフォーマンス、適応性の向上を目的としたさまざまな機能が満載されています。

この記事では、主要なハイライトと、Angular 19 が最新の Web 開発にとって重要な前進となる理由について説明します。

1. 増分水分補給: SSR のゲームチェンジャー

Angular 19 での 増分ハイドレーション の導入により、サーバーサイド レンダリング (SSR) が新たな高みに引き上げられました。従来の完全なハイドレーション アプローチとは異なり、増分ハイドレーションでは、サーバーでレンダリングされたコンポーネントがビューポートに入ったとき、またはインタラクティブになったときにのみハイドレーションできます。

これにより、読み込み時間が短縮され、ユーザー エクスペリエンスが向上します。この機能は現在開発者プレビューの段階ですが、初期負荷の最適化と Lighthouse スコアの向上に大きな期待が寄せられています。

これを達成するために、Angular は Chrome Aurora と協力して、怠惰な水分補給 に焦点を当て、現実世界の使用に適応できる、よりシームレスな SSR エクスペリエンスを提供しました。開発者は @defer などのディレクティブを使用して、コンポーネントをいつハイドレートするかを正確に制御できるようになり、プロセスが非常に効率的になります。

import { provideClientHydration, withIncrementalHydration } from '@angular/platform-browser';

bootstrapApplication(AppComponent, {
  providers: [
    provideClientHydration(withIncrementalHydration())
  ]
});
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
@defer (hydrate on viewport) {
  <shopping-cart></shopping-cart>
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

2. イベント リプレイ: スムーズなユーザー インタラクションの確保

サーバー側でレンダリングされるアプリでよくある問題は、ユーザー インタラクションと、そのインタラクションの処理を担当する JavaScript のロードとの間の遅延です。

イベントリプレイ は、Angular 19 でデフォルトで有効になり、初期ロード中にユーザー イベントをキャプチャし、必要な JavaScript が利用可能になったときにそれらをリプレイします。これにより、アプリがまだハイドレート処理中であっても、スムーズなユーザー エクスペリエンスが保証されます。

イベント ディスパッチは、Google 検索 (Wiz) で使用されているものと同じライブラリを利用しており、何十億ものユーザーによってテストされています。

イベントの再生を有効にするために、Angular はハイドレーション プロバイダーで次の設定を使用します。

bootstrapApplication(App, {
  providers: [
    provideClientHydration(withEventReplay())
  ]
});
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

これにより、JavaScript が完全に読み込まれる前に発生したユーザー操作が失われず、シームレスなエクスペリエンスが提供されます。

3. ルートレベルのレンダリング モード: レンダリングのきめ細かい制御

Angular 19 では、ルートレベルのレンダリング モードが導入されています。これにより、開発者はアプリケーション内の個々のルートをサーバー上、クライアント上で、またはビルド プロセス中に事前レンダリングする方法でレンダリングする方法を指定できます。

これにより、レンダリング戦略をきめ細かく制御できるため、開発者は各ルートの特定のニーズに基づいてパフォーマンスと SEO を最適化できます。

例: ログイン ルートは初期読み込み時間を短縮するためにサーバー側でレンダリングでき、ダッシュボード ルートはクライアント側でレンダリングして対話性を強化できます。この柔軟性により、アプリケーションの各部分が意図した使用例に合わせて最適化されるようになります。

import { provideClientHydration, withIncrementalHydration } from '@angular/platform-browser';

bootstrapApplication(AppComponent, {
  providers: [
    provideClientHydration(withIncrementalHydration())
  ]
});
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

Angular は、プリレンダリング中にルート パラメーターを解決する簡単な方法も提供し、高度にカスタマイズ可能なプリレンダリング ページを可能にします。

@defer (hydrate on viewport) {
  <shopping-cart></shopping-cart>
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

この新しいインターフェース ServerRoute により、開発者はコンテンツの配信方法をより詳細に制御できるようになり、ユーザー エクスペリエンスと SEO の両方が向上します。

4. ホットモジュール交換 (HMR) がすぐに実現

Angular 19 では インスタント HMR が導入され、アプリ全体をリロードせずにスタイルとテンプレートを更新できるようになります。これは、開発者が変更の効果をすぐに確認できることを意味し、開発サイクルがよりスムーズかつ迅速になります。 v19 では、スタイルのホット モジュール置換がデフォルトで有効になっています。テンプレートの HMR を試すには、以下を使用します:

bootstrapApplication(App, {
  providers: [
    provideClientHydration(withEventReplay())
  ]
});
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

この機能を無効にするには、開発サーバー オプションとして「hmr」: false を指定するか、代わりに以下を使用します:

export const serverRouteConfig: ServerRoute[] = [
  { path: '/login', renderMode: RenderMode.Server },
  { path: '/dashboard', renderMode: RenderMode.Client },
  { path: '/**', renderMode: RenderMode.Prerender },
];
ログイン後にコピー
ログイン後にコピー

5. ゾーンレスサポート: 継続的な進化

6 か月前、Angular は実験的な ゾーンレス サポートを導入しました。それ以来、Angular は API を反復して拡張し、サーバー側レンダリングのサポートを追加し、テスト エクスペリエンスを改善してきました。

Angular は Google Fonts チームと提携して、アプリケーションをゾーンレスにし、開発者のエクスペリエンスを評価しました。結果は予想を上回りましたが、この API を開発者プレビューに移行する前に、さらにいくつかの磨きをかける必要があります。

Angular 19 は、ゾーンレス操作がデフォルトとなり、変更検出が大幅に簡素化され、アプリケーションがスリムになる未来に向けて前進し続けています。

ゾーンレスを実験するには、次のセットアップを使用します:

export const routeConfig: ServerRoute = [{
  path: '/product/:id',
  mode: 'prerender',
  async getPrerenderPaths() {
    const dataService = inject(ProductService);
    const ids = await dataService.getIds();
    return ids.map(id => ({ id }));
  },
}];
ログイン後にコピー

6. リンクされたシグナル: コンテキスト認識を備えた反応状態

新しく追加された最もクールな機能の 1 つは、リンクされた信号です。この機能を使用すると、データが更新されても、結合された信号の関係が維持されます。これは、複数のデータ ポイントを動的に同期しておく必要があるシナリオで特に役立ちます。たとえば、別のリアクティブ ソースから派生したドロップダウンまたは選択の状態を維持することがより簡単になり、必要な定型文が少なくなりました。

NG_HMR_TEMPLATES=1 ng serve
ログイン後にコピー

linkedSignal API は、エフェクトに頼らずにステートフル要素間の依存関係を表現する簡単な方法を提供します。新しい API には 2 つの形式があります。簡易バージョン (ここに表示) と、開発者がリンク信号とソース信号の両方の以前の値にアクセスできる高度なバージョンです。

7. Angular マテリアルのアップグレード

Angular マテリアルも Angular 19 で大幅にアップグレードされました。新しく、よりカスタマイズ可能な テーマ API が追加され、開発者はスタイルを簡単にオーバーライドし、Angular マテリアル コンポーネントの外観と操作性を、深く掘り下げることなく調整できるようになりました。入れ子になったCSS。各コンポーネントのドキュメントには、これらの変更を行う方法を簡単に参照できる [スタイル] タブも含まれています。

待望の ドラッグ アンド ドロップ コンポーネントがついに Angular マテリアルにネイティブに追加され、開発者はサードパーティのライブラリに依存せずに高度なドラッグ アンド ドロップ インタラクションを実装できるようになりました。

import { provideClientHydration, withIncrementalHydration } from '@angular/platform-browser';

bootstrapApplication(AppComponent, {
  providers: [
    provideClientHydration(withIncrementalHydration())
  ]
});
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

個々のコンポーネントをカスタマイズするには:

@defer (hydrate on viewport) {
  <shopping-cart></shopping-cart>
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

8. シグナルの移行スクリプト

組み込みの移行スクリプトのおかげで、アプリを新しいシグナルベースの反応性モデルに移行することがより簡単になりました。これらのスクリプトは、古い Angular デコレータの代わりにシグナルを使用するように既存の入力、出力、クエリを移行するのに役立ち、最小限の労力でアプリを最新の状態に保つことができます。

bootstrapApplication(App, {
  providers: [
    provideClientHydration(withEventReplay())
  ]
});
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

9. 強化されたコンテンツセキュリティポリシー

セキュリティは、このリリースのもう 1 つの重要な焦点です。 Angular 19 では、自動 CSP (コンテンツ セキュリティ ポリシー) のサポートが導入されています。これは、デフォルトで XSS 攻撃やその他の脆弱性を防ぐために、安全な CSP 構成をアプリケーションに自動的に追加します。これは、手動構成を減らしてセキュリティを向上させるための重要な一歩です。

export const serverRouteConfig: ServerRoute[] = [
  { path: '/login', renderMode: RenderMode.Server },
  { path: '/dashboard', renderMode: RenderMode.Client },
  { path: '/**', renderMode: RenderMode.Prerender },
];
ログイン後にコピー
ログイン後にコピー

10. Angular でのテストの将来

最後に、テストに関する重要な注意事項です。Karma は、JestWeb Test Runner などのより新しいツールを優先して非推奨になります。 2025 年半ばまでに Karma はサポートされなくなるため、開発者は他の最新の Angular エコシステムとスムーズに統合される、より信頼性の高いテスト設定に移行する十分な時間が与えられます。

まとめ

Angular 19 は単なるアップデートではありません。これは、開発者とユーザーの両方のエクスペリエンスを最適化する先進的なバージョンです。このバージョンでは、増分ハイドレーション、イベント リプレイ、ルート レベルのレンダリング モード、インスタント HMR、ゾーンレスへの移行、生産性の多数の機能強化などの機能を備え、Angular を理想の、最新の高性能で開発者に優しいフレームワークに近づけます。 .

移行または新しいプロジェクトの開始を検討している場合、Angular 19 は最先端の機能と進化するベスト プラクティスをサポートする強固な基盤を提供します。最も楽しみにしている機能、またはプロジェクトでの Angular 19 の導入について質問がある場合は、お知らせください。

以上がAngular の最新化: Angular 19 の新機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

javascriptの分解:それが何をするのか、なぜそれが重要なのか javascriptの分解:それが何をするのか、なぜそれが重要なのか Apr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

JavaScriptの進化:現在の傾向と将来の見通し JavaScriptの進化:現在の傾向と将来の見通し Apr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptエンジン:実装の比較 JavaScriptエンジン:実装の比較 Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

JavaScript:Web言語の汎用性の調査 JavaScript:Web言語の汎用性の調査 Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合) next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合) Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

C/CからJavaScriptへ:すべてがどのように機能するか C/CからJavaScriptへ:すべてがどのように機能するか Apr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合) next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合) Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

See all articles