为什么@angular\router参数中的ActivateRoute是可见的?

为什么@angular\router参数中的ActivateRoute是可见的?,angular,rxjs,angular2-routing,Angular,Rxjs,Angular2 Routing,为什么可以观察到@angular\router params中的激活的路由 我想知道为什么我需要订阅Params?为什么参数是异步的?是否会创建路由的组件网,但仍然没有填充参数 有没有一种方法可以在没有可观察的的情况下获取值 您可以使用 route.routerState.params 您可以订阅,因为当应用程序仅使用另一个参数值导航到同一路由时,不会重新创建组件,并且您无法知道参数何时发生更改 订阅参数后,您会收到通知,表示发生了路由操作,其中只有参数值发生了更改。矩阵参数适用于此路由。当参

为什么可以观察到
@angular\router params中的
激活的路由

我想知道为什么我需要订阅Params?为什么参数是异步的?是否会创建路由的组件网,但仍然没有填充参数

有没有一种方法可以在没有可观察的
的情况下获取值

您可以使用

route.routerState.params
您可以订阅,因为当应用程序仅使用另一个参数值导航到同一路由时,不会重新创建组件,并且您无法知道参数何时发生更改


订阅参数后,您会收到通知,表示发生了路由操作,其中只有参数值发生了更改。

矩阵参数适用于此路由。当参数集发生变化时,可观察对象将发出一个新值


ActivatedRoute上的params属性是可观察的,原因是路由器在导航到同一组件时可能不会重新创建该组件。在这种情况下,参数可能会在不重新创建组件的情况下更改。

ngOnInit呢?是否在创建组件后或每次组件处于活动状态时调用它?仅调用一次。我相信现在您必须使用
route.snapshot.params['param_name']
,其中
route
是一个
ActivatedRoute
实例。这是一个非常古老的答案,此后路由器被多次更换。谢谢你的更新。你的答案的第二部分是真正的原因,这正是我想要的。