Angular 2 でのルート遷移中にロード画面を表示する
Angular Router は、変更を監視し、それに応じて UI を変更できるナビゲーション イベントを提供します。これらのイベントには、NavigationStart、NavigationEnd、NavigationCancel、NavigationError が含まれます。
ナビゲーション イベントの使用
ルート変更中に読み込み画面を表示するには、ルート コンポーネント (通常はアプリ) 内でこれらのナビゲーション イベントをサブスクライブできます。 .component.ts) を使用し、特定のイベントに基づいて読み込み UI を切り替えます
まず、必要なイベント関連クラスを @angular/router からインポートし、ルート コンポーネント内でブール値フラグ (loading) を定義します。
import { Router, Event as RouterEvent, NavigationStart, NavigationEnd, NavigationCancel, NavigationError } from '@angular/router' @Component({}) export class AppComponent { loading = true; // Initializing to true to show loading spinner on first load constructor(private router: Router) { this.router.events.subscribe((e : RouterEvent) => { this.navigationInterceptor(e); }) } }
navigationInterceptor メソッド内で、 NavigationStart、NavigationEnd、NavigationCancel、および NavigationError イベントをリッスンし、それぞれに基づいて読み込みフラグを切り替えることができます。イベント。
// Shows and hides the loading spinner during RouterEvent changes navigationInterceptor(event: RouterEvent): void { if (event instanceof NavigationStart) { this.loading = true; } if (event instanceof NavigationEnd) { this.loading = false; } if (event instanceof NavigationCancel) { this.loading = false; } if (event instanceof NavigationError) { this.loading = false; } }
ルート テンプレート内で、条件付きレンダリングを使用して、読み込みフラグの状態に基づいて読み込みオーバーレイを表示できます。
<div> <p>このアプローチに従うことで、次のことができます。 Angular 2 アプリケーションのルート遷移中に読み込み画面を効果的に表示します。</p> <h3 id="パフォーマンス最適化">パフォーマンス最適化</h3> <p>パフォーマンスが懸念される場合は、以下の更新されたコード スニペットに示すように、NgZone と Renderer を利用して読み込みスピナーのパフォーマンスを強化できます。</p> <pre class="brush:php;toolbar:false">private _navigationInterceptor(event: RouterEvent): void { if (event instanceof NavigationStart) { this.ngZone.runOutsideAngular(() => { this.renderer.setElementStyle( this.spinnerElement.nativeElement, 'opacity', '1' ) }) } if (event instanceof NavigationEnd) { this._hideSpinner() } // Set loading state to false in both of the below events to // hide the spinner in case a request fails if (event instanceof NavigationCancel) { this._hideSpinner() } if (event instanceof NavigationError) { this._hideSpinner() } } private _hideSpinner(): void { this.ngZone.runOutsideAngular(() => { this.renderer.setElementStyle( this.spinnerElement.nativeElement, 'opacity', '0' ) }) }
この手法は Angular の変更検出をバイパスします。スピナーの不透明度を更新する際のメカニズムにより、トランジションがよりスムーズになります。
以上がAngular でルート遷移中にロード画面を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

CSSグリッドは、複雑で応答性の高いWebレイアウトを作成するための強力なツールです。設計を簡素化し、アクセシビリティを向上させ、古い方法よりも多くの制御を提供します。

記事では、レスポンシブデザインにおけるスペースの効率的なアラインメントと分布のためのレイアウト方法であるCSS FlexBoxについて説明します。 FlexBoxの使用量を説明し、CSSグリッドと比較し、ブラウザのサポートを詳細に説明します。

この記事では、ビューポートメタタグ、柔軟なグリッド、流体メディア、メディアクエリ、相対ユニットなど、CSSを使用してレスポンシブWebサイトを作成するための手法について説明します。また、CSSグリッドとフレックスボックスを使用してカバーし、CSSフレームワークを推奨しています

この記事では、要素の寸法の計算方法を制御するCSSボックスサイズのプロパティについて説明します。コンテンツボックス、ボーダーボックス、パディングボックスなどの値と、レイアウト設計とフォームアライメントへの影響について説明します。

記事では、CSS、キープロパティ、およびJavaScriptとの組み合わせを使用してアニメーションの作成について説明します。主な問題は、ブラウザの互換性です。

記事では、3D変換、主要なプロパティ、ブラウザの互換性、およびWebプロジェクトのパフォーマンスに関する考慮事項にCSSを使用して説明します。

この記事では、CSSグラデーション(線形、放射状、繰り返し)を使用して、ウェブサイトのビジュアルを強化し、深さ、フォーカス、および現代の美学を追加します。

記事では、CSSの擬似要素、HTMLスタイリングの強化における使用、および擬似クラスとの違いについて説明します。実用的な例を提供します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

Dreamweaver Mac版
ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
