【问题标题】:Reusing components with new Angular Router (3.0.0-rc.1)使用新的 Angular 路由器 (3.0.0-rc.1) 重用组件
【发布时间】: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 不是更有意义吗?还是根本不应该重用组件?

【问题讨论】:

标签: angular angular2-routing


【解决方案1】:

听起来您遇到了这个问题https://github.com/angular/angular/issues/10702,该问题已经修复,将包含在下一次更新中。

【讨论】:

  • 仅作记录:RC6 确实解决了问题。再次感谢。
猜你喜欢
  • 2016-09-02
  • 2016-09-16
  • 1970-01-01
  • 1970-01-01
  • 2016-10-05
  • 2016-11-09
  • 2015-08-01
  • 1970-01-01
  • 2017-07-17
相关资源
最近更新 更多