0

私は AngularJS を初めて使用しますが、経験豊富な AngularJS 開発者の恩恵を受けることは間違いありません! だからここに行く:

AngularJS では、ng-view (ルーターを使用) またはカスタム ディレクティブを使用してテンプレート (HTML パーシャル) を表示する場合のパフォーマンスの違いは何ですか?

カスタム ディレクティブの大きさどのくらいですか? 私が見るところ、カスタム ディレクティブはビューを完全に置き換えることができますが、そのように使用する必要がありますか? どちらか一方を使用すると、利点と欠点がある場合があります。

どちらか一方を使用するための経験則は何でしょうか?

よろしくお願いします!

4

1 に答える 1

0

質問のパフォーマンスの側面はちょっと議論の余地があると思います。テーブルとテーブル行の数のアイデアを使用してみましょう。カスタム ディレクティブを使用したり、テンプレートを読み込んだりして数百行のデータを生成する場合を除き、パフォーマンスが大幅に低下することはおそらくないでしょう。Angular はテンプレートをキャッシュするので、行ごとに同じテンプレートを何度もロードすることはありません。多数の行を生成している場合は、パフォーマンスの調整と、それらの問題に対処するために利用できるさまざまな UX アプローチがあります (例: track byng-repeatエンドレス スクロール、ページネーションなど)。

カスタム ディレクティブの大きさどのくらいですか?

あなたが述べたように、ディレクティブを使用してビュー全体を作成できます。Angular 1.* では、それは意図した機能ではなかったと思います。ディレクティブは、ウィジェットまたは UI コンポーネントに似ていました (特定の UX を念頭に置いた大部分が UI コンテナーであるディレクティブについては、この議論では明らかに非 UI タイプのディレクティブを考慮していません)。

私の経験則は次のとおりです。

  • 問題の UI に URL (別名ルート) の所有権がある場合は、それをビューとして扱います。通常、URL は視覚的に一意であるため、ディレクティブを使用しても作業が増えるだけで成果はほとんどありません。
  • 問題の UI がウィジェット/UI コンポーネントのように機能する場合は、ディレクティブを使用します。
  • 問題の UI が何度も再利用される場合 (例: の内部)、消費するデータに対する 特定の作業ng-repeatを分離する場合は、ディレクティブを検討する必要があります。

これらの点はすべて、意図した UX によって複雑になります。しかし、経験則は良い出発点となります。

Angular 2 では、スコープを廃止し、ディレクティブをビューのように扱うことで、これらすべてを変更する予定です。

于 2015-10-01T17:54:17.810 に答える