Angular 2 即使没有导航到它也能保持路线活动状态
Angular 2 keep route alive even when not navigated to it
在 angular 2 中,有没有办法让导航路线保持活动状态,即使它没有被导航到?我这样做的目的是我试图将 webgl 画布放入角度 2 路线中。现在,默认情况下,每当导航到路由时,它都会初始化组件并加载所有需要的资源,然后在导航离开时会破坏组件并从 Dom 中删除视图。使用webgl时,这会导致2个问题,主要是只允许特定数量的webgl实例,否则它可能会使显卡过载。因此,如果多次导航到路由并离开路由,则有可能达到限制,因为每次导航到路由时都会创建一个新的 webgl 实例。此外,webgl 通常需要复杂的变量和资源,如果能够保持这些变量处于活动状态,这样它们就不必再次加载,在某些情况下甚至会在路由之外使用它们。
所以我提出的解决方案是保持组件活动但隐藏,以便资源和变量保持活动状态,有什么办法可以做到这一点吗?
我认为您可以尝试使用CanReuse
界面及其routerCanReuse
。如果组件实现此方法并返回 true,则不会销毁该组件,并且将跨路由重用相同的组件实例:
@Component({
selector: 'my-cmp',
template: `
(...)
`
})
class MyCmp implements CanReuse, OnReuse {
routerCanReuse(next: ComponentInstruction, prev: ComponentInstruction) {
return true;
}
}
相关文章:
- 在Angular 2中布线期间保持零部件处于活动状态
- 如何使bxslider仅在移动视图中处于活动状态
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- 使用纯javascript而非jquery使所选选项卡处于活动状态并保持非活动状态
- 我如何为列出的选项卡元素编写一个Protractor测试,它会检查它是否's是否处于活动状态
- 返回上一页时,Javascript仍处于活动状态
- Angular+bootstrap ui,检查当前选项卡是否已处于活动状态
- 按钮处于活动状态,焦点无法在Mac FireFox上工作
- 禁用永久活动状态
- 单击我网站中的链接时打开新选项卡,保持当前选项卡处于活动状态
- 网页在等待 AJAX 响应时变为非活动状态
- 广告拦截处于活动状态,然后不要打开超链接到新标签
- 如何创建至少 1 个框处于活动状态的复选框列表
- 如何使按钮具有 :活动状态 1 秒
- JQuery UI 1.11 将选项卡设置为活动状态
- 如何获取链接以保持活动状态
- 限制 .live() 函数在 JavaScript 中变为活动状态的次数
- 如何在每次页面重新加载时更改渐变背景,同时保持光标位置元素处于活动状态
- 页面刷新后,所选选项卡处于非活动状态
- 使第二个选项卡处于第一个活动状态