Angular パフォーマンス
Ionic コンポーネントでの *ngFor
Ionic コンポーネントで*ngFor
を使用する場合、Angular のtrackBy
オプションの使用をお勧めします。これにより、Angular は変更の伝播をはるかに効率的に管理し、コンポーネント全体を再作成するのではなく、コンポーネント内のコンテンツのみを更新できます。
trackBy
を使用することで、各ループ要素に安定した ID を提供できるため、Angular はイテレーター内の挿入と削除を追跡できます。以下は、trackBy
の使用方法の例です。
home.page.html
<ion-item *ngFor="let item of items; trackBy:trackItems">
<ion-label>{{ item.value }}</ion-label>
</ion-item>
home.component.ts
items = [
{ id: 0, value: 'Item 0' },
{ id: 1, value: 'Item 1' },
...
]
trackItems(index: number, itemObject: any) {
return itemObject.id;
}
この例では、items
というオブジェクトの配列があります。各オブジェクトにはvalue
とid
が含まれています。trackBy
を使用して、各オブジェクトのid
を返すtrackItems
関数を渡します。このid
は、各ループ要素に安定した ID を提供するために使用されます。
Angular がngFor
による変更の伝播をどのように管理するかについての詳細は、https://angular.io/api/common/NgForOf#change-propagationを参照してください。
Ionic チームより
Angular チームより
パフォーマンスが高く、プログレッシブな Angular アプリを構築する - web.dev
コミュニティより
Ionic での高パフォーマンスアニメーション - Josh Morony
Ionic での高パフォーマンスリストフィルタリング - Josh Morony
Ionic での効率的な DOM 書き込みによるパフォーマンス向上 - Josh Morony
Ionic フレームワークは高速です(しかし、コードはそうではないかもしれません) - Josh Morony
共有したいガイドがありますか?下の「このページを編集」ボタンをクリックしてください。