独立组件中路由providers内服务实例的生命周期是怎样的?
独立组件路由中配置的服务实例生命周期
在Angular独立组件的路由providers中配置的服务,其生命周期完全绑定到路由的活跃状态,具体规则如下:
- 路由首次激活(对应组件加载)时,Angular会创建这些服务的实例,实例归属该路由的专属注入器。
- 路由被导航离开(对应组件销毁)时,关联的服务实例会被Angular销毁。
- 再次导航回该路由时,Angular会重新创建服务的新实例,不会复用之前的实例。
这类服务的生命周期和应用全局生命周期并不一致——它们不会一直存活到应用结束,只会在路由处于活跃状态期间存在。
举个实际代码示例:
const routes: Routes = [ { path: 'profile', component: ProfileComponent, // 独立组件 providers: [ProfileDataService] // 路由级别的服务配置 } ];
当进入/profile路由时,ProfileDataService实例被创建;离开该路由时,这个实例被销毁;再次进入时,会生成全新的ProfileDataService实例。
内容的提问来源于stack exchange,提问作者tlt
相关产品推荐
相关产品推荐

