[角路由-保留路径更改时组件的状态

问题描述 投票:1回答:1

我已经在我的角度应用程序上实现了延迟加载,但是如果我切换页面,先前加载的页面将返回原始状态(再次触发ngOnInit)

{ path: '/posts', loadChildren: () => import('./posts/main.module').then(m => m.MainModule) }
angular angular-routing
1个回答
1
投票

该行为与延迟加载无关。

[只要不再在DOM中使用组件,Angular就会启动清理过程。因此,它执行组件的“ ngOnDestroy”方法(如果有)。在组件有机会进行清理(或保存数据)之后,该组件将被销毁。

因此,当相同的组件再次添加到DOM时,它将再次执行其新实例,并且再次执行“ ngOnInit”。

您可以使用简单的“ * ngIf”进行尝试。因为ngIf会根据if语句从DOM中删除并添加组件。如果使用的是“隐藏”,则该组件将不会显示,但仍将是DOM的一部分,因此实例保持不变。

在您的情况下,组件将被路由器放置和移除...

© www.soinside.com 2019 - 2024. All rights reserved.