我们最近将angular2应用程序从2.0.0-beta.15
升级到2.0.0-rc.5
(包括迁移到新路由器3.0.0-rc.1
)。通过左侧的菜单和页面顶部的子菜单,我们的应用程序同时有两个<router-outlet>
。
在更新后追逐一些不同的行为,我注意到我们的应用程序中的任何组件现在(在更新之后)被破坏和构建,即使该组件在<router-outlet>
之外。旧路由器不是这种情况。这就像新路由器无法重用已有的组件。
我将angular CrisisCenter
分叉到plunker并向每个组件构造函数添加了一些简单的调试控制台输出,以验证这是由于新版本而不是配置。行为是相同的:count
永远不会增加,因为组件永远不会被重用。有没有人知道如何重用组件的实例?
除此之外,有人可以解释为什么新路由器不想重用组件吗?我已经从CanReuse
遇到@angular/router-deprecated
,但此功能尚未到达新路由器。但即使CanReuse
适用于新路由器,默认情况下重用组件而不是为所有“静态”组件实现CanReuse
会更有意义吗?或者不应该重复使用组件?