角度布线-跨路线更改保留组件的状态

时间:2020-03-02 15:49:37

标签: angular angular-routing

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

Replace All

1 个答案:

答案 0 :(得分:2)

该行为与延迟加载无关。

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

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

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

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

相关问题