路线更改时,如何用角度重新加载整个组件?

时间:2019-01-14 00:46:57

标签: angular typescript angular7

我想在路线更改时重新加载或重新渲染侧边栏组件,我具有以下代码:

  constructor(
    private auth: AuthService,
    private router: Router,
    private changeDetector: ChangeDetectorRef
  ) {
    this.auth.currentUser.subscribe(x => this.userData = x);
    this.router.events.subscribe((event) => {
      if (event instanceof NavigationStart) {
        this.changeDetector.detectChanges();
        console.log('enter');
      }
    });
  }

此输入显示日志“输入”,但不重新加载组件。有人可以帮忙举个例子吗?

2 个答案:

答案 0 :(得分:0)

通常不会重新加载组件路由,因为angular可用作SPA(单页应用程序)-但是,只有在这种情况下,您才能加载components以减小浏览器的大小

在侧边栏href链接上使用routerLink和路径名插入anchor-这将使您的组件在每次单击时都可以重新加载-每次都将加载所有{{ 1}}从服务器-如果您使用的是js,则此加载方式不正确-这只会帮助您减少每次点击时的浏览器RAM使用率,并且不会保留任何以前的数据,但可以路由一样

因此lazy是您要提问的词-但请确保您确实要加载组件

希望它会有所帮助-编码愉快:)

答案 1 :(得分:0)

如果您想重新加载整个页面,只需使用

window.location.reload();