【发布时间】:2016-12-25 10:21:17
【问题描述】:
我们最近将 angular2 应用程序从 2.0.0-beta.15 升级到了 2.0.0-rc.5(包括迁移到新路由器 3.0.0-rc.1)。通过左侧的菜单和页面顶部的子菜单,我们的应用程序同时拥有两个<router-outlet>。
在更新后追逐一些不同的行为,我注意到我们应用程序中的任何组件现在(更新后)都会被销毁和构造,即使该组件在<router-outlet> 之外。旧路由器并非如此。就像新的路由器不能重用已经存在的组件一样。
我将 Angular 的 CrisisCenter 分叉为 plunker 并在每个组件构造函数中添加了一些简单的调试控制台输出,以验证这是由于新版本而不是配置。行为是相同的:count 永远不会增加,因为组件永远不会被重用。有人知道如何重用组件的实例吗?
另外,谁能解释一下为什么新路由器不想重用组件?我已经从@angular/router-deprecated 遇到了CanReuse,但是新路由器还没有这个功能。但是即使CanReuse 用于新路由器,默认情况下重用组件而不是为所有“静态”组件实现CanReuse 不是更有意义吗?还是根本不应该重用组件?
【问题讨论】:
-
谢谢 Nikolay,但这似乎是关于别的事情。