app.module.ts中的注册服务与angular4中的单个组件有什么好处?
发布时间:2020-12-17 17:43:19 所属栏目:安全 来源:网络整理
导读:例如,如果我在app.module.ts中注册服务,我必须执行以下操作以使组件中的服务可用 app.module.ts import { AppComponent } from './app.component';import { MyComponent } from './mycomponent/mycomponent.component';import { MyService } from './service
例如,如果我在app.module.ts中注册服务,我必须执行以下操作以使组件中的服务可用
app.module.ts import { AppComponent } from './app.component'; import { MyComponent } from './mycomponent/mycomponent.component'; import { MyService } from './services/myservice.service'; @NgModule({ declarations: [ AppComponent,MyComponent ],imports: [ ],providers: [MyService],bootstrap: [AppComponent] }) mycomponent.component.ts import { Component,OnInit } from '@angular/core'; import { MyService } from '../services/myservice.service'; @Component({ selector: 'my-selector',templateUrl: './mycomponent.component.html',styleUrls: ['./my-component.component.scss'] }) export class MyComponent implements OnInit { constructor(private _myService: MyService) { } ngOnInit() { this._myService.test() } } 但我也可以在组件本身注册使用它,而无需向app.module.ts添加任何内容 import { Component,styleUrls: ['./my-component.component.scss'],providers: [MyService] }) export class MyComponent implements OnInit { constructor(private _myService: MyService) { } ngOnInit() { this._myService.test() } } 我很好奇,每种方式有什么不同? 解决方法
在应用程序的根提供程序中添加服务时,所有组件都将注入相同的服务实例.因此在应用程序期间只会创建一个实例.在这种情况下,您可以在服务中保持状态.
在Component的提供程序中添加服务时,每次创建该组件的新实例时,也会创建新的服务实例.在这种情况下,您无法在此类服务中保持状态, 根据您的逻辑提供所需的位置,但通常情况下在根模块中提供所有服务. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |