Angular7-materials-cdk-virtual-scrolling
Angular7-マテリアル/CDK-仮想スクロール
これは、Angular 7に追加された仮想スクロールと呼ばれる新機能の1つです。 この機能は、CDK(コンポーネント開発キット)に追加されます。 仮想スクロールは、ユーザーに表示されるdom要素をユーザーに表示します。ユーザーがスクロールすると、次のリストが表示されます。 これにより、完全なリストが一度にロードされるのではなく、画面上の表示に従ってのみロードされるため、より高速なエクスペリエンスが得られます。
なぜ仮想スクロールモジュールが必要なのですか?
すべてのデータを一緒にロードするとパフォーマンスの問題が発生する可能性のある大きなリストを持つUIがあると考えてください。 Angular 7 Virtual Scrollingの新機能は、ユーザーに表示される要素の読み込みを処理します。 ユーザーがスクロールすると、ユーザーに表示されるdom要素の次のリストが表示されます。 これにより、操作が速くなり、スクロールも非常にスムーズになります。
私たちのプロジェクトに依存関係を追加しましょう-
仮想スクロールモジュールの依存関係をインストールしました。
プロジェクトで仮想スクロールモジュールを使用する方法を理解するために、例に取り組みます。
次のように、最初に app.module.ts 内に仮想スクロールモジュールを追加します-
app.module.tsで、ScrollDispatchModuleをインポートしました。上記のコードに示すように、同じものがimports配列に追加されます。
次のステップは、画面に表示されるデータを取得することです。 前の章で作成したサービスを引き続き使用します。
約5000個の画像のデータがあるURL、https://jsonplaceholder.typicode.com/photosからデータを取得します。 それからデータを取得し、仮想スクロールモジュールを使用してユーザーに表示します。
URL、https://jsonplaceholder.typicode.com/photosの詳細は次のとおりです-
画像のURLとサムネイルのURLを持つjsonデータです。 ユーザーにサムネイルのURLを表示します。
以下は、データを取得するサービスです-
次のようにapp.component.tsからサービスを呼び出します-
これで、変数 albumdetails にはAPIからのすべてのデータが含まれ、合計カウントは5000です。
データを表示する準備ができたので、app.componentl内でデータを表示します。
仮想スクロールモジュールを使用するには、タグ<cdk-virtual-scroll-viewport> </cdk-virtual-scroll-viewport> *を追加する必要があります。 タグは、データを表示するlファイルに追加する必要があります。
これがapp.componentlの <cdk-virtual-scroll-viewport> の動作です。
画面にユーザーにidとサムネイルのURLを表示しています。 これまではほとんど* ngForを使用していましたが、 <cdk-virtual-scroll-viewport> 内では、* cdkVirtualForを使用してデータをループする必要があります。
app.componentl内に入力されるalbumdetails変数をループしています。 仮想タグ[itemSize] = "20"に割り当てられたサイズがあり、仮想スクロールモジュールの高さに基づいてアイテムの数が表示されます。
仮想スクロールモジュールに関連するCSSは次のとおりです-
仮想スクロールの高さは500pxです。 その高さに収まる画像がユーザーに表示されます。 仮想スクロールモジュールを表示するために必要なコードを追加しました。
ブラウザでの仮想スクロールモジュールの出力は次のとおりです-
最初の4つの画像がユーザーに表示されていることがわかります。 500pxの高さを指定しました。 ユーザーがスクロールすると、テーブルにスクロールが表示され、その高さに収まる画像が以下に示すように表示されます-
ユーザーがスクロールすると、必要な画像がロードされます。 この機能は、パフォーマンスの点で非常に便利です。 最初は、5000個の画像すべてをロードするのではなく、ユーザーがスクロールすると、URLが呼び出されて表示されます。