gpt4 book ai didi

javascript - Angular 2即使没有导航到它也能保持路线活跃

转载 作者:行者123 更新时间:2023-11-30 12:03:29 24 4
gpt4 key购买 nike

在 Angular 2 中,有没有办法让导航路线保持事件状态,即使它没有被导航到?我这样做的目的是尝试将 webgl Canvas 放入 angular 2 route 。现在默认情况下,无论何时导航到路由,它都会初始化组件并加载所有需要的资源,然后在导航离开时销毁组件并从 Dom 中删除 View 。这在使用 webgl 时会导致 2 个问题,主要问题是只允许特定数量的 webgl 实例,否则它可能会使显卡过载。因此,如果路线被导航到和离开多次,则有可能达到限制,因为每次路线导航到时它都会创建一个新的 webgl 实例。此外,webgl 通常需要复杂的变量和资源,如果能够使这些变量保持事件状态,这样它们就不必再次加载,在某些情况下甚至可以在路由之外使用它们,那就太好了。

所以我提出的解决方案是让组件保持事件状态但隐藏起来,以便资源和变量保持事件状态,有什么办法可以做到这一点吗?

最佳答案

我认为您可以尝试使用CanReuse 接口(interface)及其routerCanReuse。如果组件实现了这个方法并返回 true,则组件不会被销毁,同一个组件实例将在路由之间重用:

@Component({
selector: 'my-cmp',
template: `
(...)
`
})
class MyCmp implements CanReuse, OnReuse {
routerCanReuse(next: ComponentInstruction, prev: ComponentInstruction) {
return true;
}
}

关于javascript - Angular 2即使没有导航到它也能保持路线活跃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36000512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com