Javascript 如何在组件的路由被激活后缓存组件

Javascript 如何在组件的路由被激活后缓存组件,javascript,angular,typescript,caching,angular-ui-router,Javascript,Angular,Typescript,Caching,Angular Ui Router,我有3个组件。 带有路由器出口的1个父组件和2个子组件,因此无论何时调用其路由,子组件都处于活动状态(使用服务共享数据) 我有这两个子组件的复杂视图 当我在这两条路线之间切换时,渲染视图会花费太多时间。(我使用了一些bootstrap UI、ngbootstrap和其他库) 我的数据在这两个子组件之间没有更改,仅查看需要时间的零件更改 所以我想知道,一旦调用了这个组件,有没有办法缓存它们?提高绩效 提前谢谢。这是一个好问题,我从来没有用过,但你可以用。您没有提供具体的示例,但通常需要使用以下方法

我有3个组件。
带有路由器出口的1个父组件和2个子组件,因此无论何时调用其路由,子组件都处于活动状态(使用服务共享数据)

我有这两个子组件的复杂视图

当我在这两条路线之间切换时,渲染视图会花费太多时间。(我使用了一些bootstrap UI、ngbootstrap和其他库)

我的数据在这两个子组件之间没有更改,仅查看需要时间的零件更改

所以我想知道,一旦调用了这个组件,有没有办法缓存它们?提高绩效


提前谢谢。

这是一个好问题,我从来没有用过,但你可以用。您没有提供具体的示例,但通常需要使用以下方法:

  • shouldAttach-返回true/false以确定是否调用retrieve方法来获取组件,而不是从头开始创建组件
  • retrieve-返回RouteHandle或null如果调用它-它可以返回保存(缓存)组件作为分离的路由句柄
  • shouldDetach-返回true/false以确定是否调用存储方法
  • 存储-不返回任何内容,但接受可保存(缓存)分离树,以存储组件状态,并从检索方法进一步返回

这听起来很复杂,但要做到这一点要比将路由器插座更换为某种定制产品容易得多。这家伙很好地描述了这一点,并提供了一个例子。希望能有所帮助。

这是一个好问题,我从来没有用过,但你可以用。您没有提供具体的示例,但通常需要使用以下方法:

  • shouldAttach-返回true/false以确定是否调用retrieve方法来获取组件,而不是从头开始创建组件
  • retrieve-返回RouteHandle或null如果调用它-它可以返回保存(缓存)组件作为分离的路由句柄
  • shouldDetach-返回true/false以确定是否调用存储方法
  • 存储-不返回任何内容,但接受可保存(缓存)分离树,以存储组件状态,并从检索方法进一步返回

这听起来很复杂,但要做到这一点要比将路由器插座更换为某种定制产品容易得多。这家伙很好地描述了这一点,并提供了一个例子。希望有帮助。

欢迎来到stackoverflow!请务必发布您的代码,以便其他人可以更好地帮助您。欢迎使用stackoverflow!请确保发布您的代码的一部分,以便其他人可以更好地帮助您。它会将我的所有订阅存储在子组件中吗?据我所知,它不会调用Ngondestory(),所以它会存储所有订阅,但您可以在Ngondestory中再次检查将
console.log
放入Ngondestory,以检查是否正在调用它。您能否提供有关如何在其父组件被销毁时销毁子组件的更多信息?它会将我所有的订阅存储在子组件中吗?据我所知,它不会调用Ngondestory(),因此,是的,它将存储所有订阅,但您可以在Ngondestory中放入
console.log
,以检查是否正在调用它。您能否提供有关如何在其父组件被销毁时销毁子组件的更多信息?