路由参数-订阅方法

Route parameters - subscribe method

"Angular 如果组件已经存在于 DOM 中,则不会创建组件。它会重用组件实例。这意味着当用户导航时不会调用 ngOnInit 生命周期挂钩再次到组件。"

基于此,我无法理解为什么ngOnInit生命周期方法在我们获取路由参数时包含.subscribe方法,为什么会再次调用。

谁能帮我解决这个问题?

谢谢。

我们可以通过几种方式访问​​路由参数,使用 -->

this.route.snapshot.params["someParam"]

this.route.params.subscribe()

假设我们对 .subscribe 使用第二种方法,因为您对这种情况感兴趣。即使它在 ngOnInit 生命周期方法内,如果路由参数已更改,它也会被触发。我们订阅了某些更改(路由参数更改),因此如果它们发生更改,我们将获得最新值。

万事俱备,不关ngOnInit。这是关于我们的订阅。我们正在“倾听”这些变化。

仅供参考,如果您在我们没有 .subscribe 的地方使用第一种方法 this.route.snapshot.params["someParam"],则此方法不会再次触发。它只会 运行 一次,不会再次出现,因为我们对即将到来的潜在路线参数更改“不感兴趣”。