angular路由加载

1. 参数的可观察对象(Observable)与组件复用

实践中发现,不同的path路由到相同的component时,不会再次调用ngOnInit()。但如果访问过其他组件导航到同一个组件实例,就能再次调用ngOnInit()。这是由于angular复用了组件实例。如果不想复用实例,需要使用可观察对象。官网的例子:

ngOnInit() {
  this.hero$ = this.route.paramMap.pipe(
    switchMap((params: ParamMap) =>
      this.service.getHero(params.get('id')))
  );
}