[解決済み] ActivatedRoute(paramsなど)のobservableの購読を解除しなければならないのでしょうか?
2023-01-10 05:16:10
質問
私は、多くの例で
ActivatedRoute
のような観測可能な
params
または
url
は購読されているが購読を解除されていない。
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.params
// (+) converts string 'id' to a number
.switchMap((params: Params) => this.service.getHero(+params['id']))
.subscribe((hero: Hero) => this.hero = hero);
}
- ルートオブジェクトとサブスクリプションは自動的に破棄され、コンポーネントが作成されるたびに新しく作成されるのでしょうか?
-
これらのルートオブジェクトとサブスクリプションの解除について気にする必要がありますか?
Observable
s? -
そうでない場合、ActivatedRouteオブジェクトのツリーで何が起こっているのかを
Router
.routerState
?
どのように解決するのですか?
ドキュメントより :
コンポーネントで observable を購読する場合、ほとんどの場合、コンポーネントが破壊されたときに購読を解除するように手配します。
これが必要でない、いくつかの例外的な観測値があります。ActivatedRoute observableはその例外の一つです。
ActivatedRouteとその観測項目は、ルータ自身から隔離されています。ルータは、それがもはや必要とされないとき、ルーティングされたコンポーネントを破棄し、注入されたActivatedRouteはそれと共に破棄されます。
とにかく自由に購読を中止してください。無害ですし、決して悪い習慣ではありません。
関連
-
[解決済み] Angular/RxJS `Subscription` からいつ退会すればいいのか?
-
[解決済み] Angular 2でurlからクエリパラメータを取得する方法は?
-
[解決済み] FormGroupから単一の値を取得する方法
-
[解決済み] Angular2 DIRECTIVEは要素の既知のプロパティではないので、バインドできません。
-
[解決済み] angular-cli が HTTPS で ng serve するようにする。
-
[解決済み] Angular2ルートでAngularの方法でパラメータを取得するには?
-
[解決済み] Angular 2で送信後にフォームをクリアするには?
-
[解決済み] Angular 4.3 - HttpClient set params
-
[解決済み] エラー TS1192: モジュール '" A.module"' はデフォルトのエクスポートがありません。
-
[解決済み] APIレスポンスからレスポンスヘッダを読み取る - Angular 5 + TypeScript
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Angularで前のページのURLを決定する方法は?
-
[解決済み] angular-cliのビルドでカスタムファイルをインクルードするには?
-
[解決済み] 別のプロセス(id #######)が現在 ngcc を実行しています。
-
[解決済み] 継承と依存性注入
-
[解決済み] ルーターナビゲートで同じページのngOnInitを呼び出さない
-
[解決済み] angular-cli server - APIリクエストを別のサーバーにプロキシする方法は?
-
[解決済み] プロパティ 'controls' がタイプ 'AbstractControl' に存在しない Angular 4 [duplicate] 。
-
[解決済み] コンポーネントではなくクラスにサービスをインジェクトする方法
-
[解決済み] aria-valuenow' は 'div' の既知のプロパティではないため、バインドできません。
-
[解決済み] Tslint - type trivially inferred - なぜここに型を入れるのはバッドプラクティスなのですか?