关于Angular服务生命周期的一些问题。我目前的理解是,如果你将服务注入到组件中,并且该服务在该组件的providers数组中提供,则该服务将在组件被销毁时被销毁。
以下是一个例子:
@Component({
selector: 'app-offline-header',
templateUrl: './offline-header.component.html',
styleUrls: ['./offline-header.component.css'],
providers: [WebsocketService]
})
export class OfflineHeaderComponent{
constructor(private socket: WebsocketService) {}
}
在上面的例子中,
WebsocketService
是在该组件级别上注入的,而不是在 app.module
(或其他模块)中注入。因此,如果销毁了该组件,则服务实例也将被销毁。问题:
- 当销毁该组件时,
WebsocketService
实例是否也会被销毁? - 如果我们在根模块(
app.module
)中提供这些服务,那么该服务是否为单例?如果是单例,那么何时创建该单例?