AngularNgoninit每次路由时都会被调用
创始人
2024-10-28 17:01:15
0

使用RxJS的takeUntil操作符将订阅取消时机与路由导航关联起来,以便在组件销毁前取消未完成的订阅。

示例代码:

import { Component, OnInit, OnDestroy } from '@angular/core'; import { takeUntil } from 'rxjs/operators'; import { Subject } from 'rxjs'; import { Router, NavigationEnd } from '@angular/router';

@Component({ selector: 'app-my-component', templateUrl: './my-component.component.html', styleUrls: ['./my-component.component.css'] }) export class MyComponentComponent implements OnInit, OnDestroy { private ngUnsubscribe = new Subject();

constructor(private router: Router) { }

ngOnInit() { this.router.events .pipe(takeUntil(this.ngUnsubscribe)) .subscribe(event => { if (event instanceof NavigationEnd) { // 在这里编写处理导航结束时要做的事情 } }); }

ngOnDestroy() { this.ngUnsubscribe.next(); this.ngUnsubscribe.complete(); } }

在组件的ngOnInit方法中,使用takeUntil操作符将路由事件与ngUnsubscribe主体关联起来,以便在组件销毁之前取消任何未完成的订阅。在这个例子中,我们只关心NavigationEnd事件。在组件的ngOnDestroy方法中,我们取消与ngUnsubscribe相关的所有订阅。

相关内容

热门资讯

第8分钟了解!广西八一字牌外g... 第8分钟了解!广西八一字牌外g挂安装!其实存在有辅助工具(有挂透视)-哔哩哔哩1、在广西八一字牌外g...
4分钟了解!凑一桌关春天怎么才... 4分钟了解!凑一桌关春天怎么才能开挂!本来一直总是有辅助攻略(证实有挂)-哔哩哔哩凑一桌关春天怎么才...
第一分钟了解!老友广东麻将有挂... 第一分钟了解!老友广东麻将有挂吗!真是真的是有辅助插件(有挂详情)-哔哩哔哩一、老友广东麻将有挂吗游...
第七分钟了解!威信茶馆有挂的吗... 第七分钟了解!威信茶馆有挂的吗!一贯是有辅助技巧(今日头条)-哔哩哔哩一、威信茶馆有挂的吗游戏安装教...
4分钟了解!九天大厅挂价格!总... 4分钟了解!九天大厅挂价格!总是一直都是有辅助方法(有挂技巧)-哔哩哔哩九天大厅挂价格脚本下载中分为...
一分钟了解!人海大厅挂件怎么买... 一分钟了解!人海大厅挂件怎么买!一直一直都是有辅助技巧(竟然有挂)-哔哩哔哩小薇(辅助器软件下载)致...
第六分钟了解!游戏黑科技夫追求... 第六分钟了解!游戏黑科技夫追求!切实一直总是有辅助工具(确实有挂)-哔哩哔哩1、完成游戏黑科技夫追求...
5分钟了解!雀姬无限钻石辅助!... 5分钟了解!雀姬无限钻石辅助!果然一直都是有辅助app(有挂助手)-哔哩哔哩1、雀姬无限钻石辅助辅助...
第1分钟了解!德州来玩辅助器!... 第1分钟了解!德州来玩辅助器!一直真的是有辅助教程(有挂秘诀)-哔哩哔哩德州来玩辅助器破解侠是真的助...
十分钟了解!乐乐川南茶馆辅助!... 十分钟了解!乐乐川南茶馆辅助!总是一直总是有辅助方法(果真有挂)-哔哩哔哩1、乐乐川南茶馆辅助透视辅...