Angularの不純物入りパイプとは何ですか?
2023-07-10 16:13:51
質問
@Pipe({name:'myPipe', pure: false})
不純物混入パイプが理解できません。
純パイプと不純物入りパイプはどう違うのですか?
簡単で基本的な例で説明してください。
どのように解決するのですか?
純粋なパイプ は、Angularがパイプに渡された値やパラメータの変更を検出したときのみ呼び出されます。
不純なパイプ は、値やパラメータが変更されたかどうかに関係なく、変更検出サイクルごとに呼び出されます。
これは、Angularによって検出されない変更に関連しています。
- 内容が変更された(しかしまだ同じインスタンスである)配列またはオブジェクトを渡したとき
- パイプが他の値へのアクセスを得るためにサービスを注入するとき、Angularはそれらが変更されたかどうかを認識しない。
このような場合、おそらくまだパイプを実行させたいと思うでしょう。
不純なパイプは非効率になりがちであることに注意する必要があります。
例えば、フィルタリングやソートなどのためにパイプに配列が渡されると、 変更検出が実行されるたびにこの作業が行われるかもしれません (特にデフォルトの
ChangeDetectionStrategy
の設定だと特にそうです)、配列が変更されていないにもかかわらず、 変更検出が実行されるたびにこの作業が行われるかもしれません。
パイプはこれを認識し、例えばキャッシュされた結果を返すようにすべきです。
関連
-
[解決済み] Angular HTMLバインディング
-
[解決済み] BehaviorSubjectとObservableの違い?
-
[解決済み] オブジェクトのキーと値に*ngForでアクセスする
-
[解決済み】PromiseとObservablesの違いは何ですか?
-
[解決済み] trackBy` と `ngFor` の使い方
-
[解決済み] Error: モジュールによってインポートされた予期しない値 'undefined'。
-
[解決済み] angular-cli が HTTPS で ng serve するようにする。
-
[解決済み] の@ViewChildのreadパラメータは何ですか?
-
[解決済み] Angular 2+でspec.tsファイルなしでComponentを生成する。
-
[解決済み] Angular2で複数のルートパラメータを渡す
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ng buildの後にangular-cliのdist-folderのパスを変更するには?
-
[解決済み] Angular Materialでのデフォルトのソート - ヘッダーのソート
-
[解決済み] formControlNameとFormControlの違いは何ですか?
-
[解決済み] angular-cliのビルドでカスタムファイルをインクルードするには?
-
[解決済み] プロパティ 'X' はプライベートであり、クラス 'xyzComponent' 内でのみアクセス可能です。
-
[解決済み] タイプスクリプト タイプ X はタイプ Y の length、pop、push、concat、その他 26 のプロパティが欠落しています。[2740]
-
[解決済み] どのようにしてangular 4のurlからparamを取得するのですか?
-
[解決済み] 角度換算2
-
[解決済み] Angularで確認ダイアログを作る簡単な方法?
-
[解決済み] Angular2 RC5:「Property X」が「Child Component」の既知のプロパティではないため、「Property X」にバインドできない