Я думаю, что основное отличие состоит в том, что компоненты, модули и сервисы Angular используют декораторы из пакета angular.
например. @Component()
делает это:
* Component decorator allows you to mark a class as an Angular component and provide additional
* metadata that determines how the component should be processed, instantiated and used at
* runtime.
Это прямо из исходного кода, который вы можете посмотреть.
То, что вы передаете этому, также довольно специфично для углов. Кроме этого, нет, не должно быть большой разницы.
Если вы взаимодействуете с компонентом, который требует инициализации, вы не должны использовать конструктор JS. Он будет выполняться немного раньше, чем ngOnInit
, и может вызвать проблемы, так как работает angular.
Если вы пишете пользовательские модули, то, конечно, можете просто делать что-то обычным.
Способ инициализации модулей - это соглашение forRoot
:
Здесь вы в основном создаете синглтон с заданной конфигурацией:
(взято по ссылке)
src / app / core / user.service.ts (конструктор)
constructor(@Optional() config: UserServiceConfig) {
if (config) { this._userName = config.userName; }
}
src / app / core / core.module.ts (forRoot)
static forRoot(config: UserServiceConfig): ModuleWithProviders {
return {
ngModule: CoreModule,
providers: [
{provide: UserServiceConfig, useValue: config }
]
};
}
src / app / app.module.ts (импорт)
import { CoreModule } from './core/core.module';
/* . . . */
@NgModule({
imports: [
BrowserModule,
ContactModule,
CoreModule.forRoot({userName: 'Miss Marple'}),
AppRoutingModule
],
/* . . . */
})
export class AppModule { }