app.module.ts文件提供什么服务?我应该在里面做些什么?
我已经习惯了Angular 2,但我有几个关于app.module.ts文件的问题。app.module.ts文件提供什么服务?我应该在里面做些什么?
- 为什么我必须做进口这个文件,因为我会在app.components.ts文件再次做 的输入。
例如:我 导入我的自定义管道,然后我又不得不进口在我 app.components.ts文件
import { FirstPipePipe } from './first-pipe.pipe';
@NgModule({
declarations: [
AppComponent,
SecondComponent,
ThirdComponent,
FirstComponent,
FirstPipePipe
],
imports: [
BrowserModule, RouterModule.forRoot(appRoutes), HttpModule
],
providers: [FetchDataService],
bootstrap: [AppComponent] })
然后我有
imports: [
BrowserModule, RouterModule.forRoot(appRoutes), HttpModule
],
为什么我要导入一些类而其他类不是?
为什么这里的供应商,因为他们再一次出现在app.component.ts
providers: [FetchDataService]
基本上,我有我的app.component.ts文件重写一切。
app.module.ts的用途是什么?
模块是一种组织和分离你的代码的方式。你可以有多个模块并延迟加载一些模块。
您可以将任何其他模块导入imports
部分。您在declarations
中声明了任何组件。在该模块的路由中使用的任何组件必须在该模块中声明。如果组件在另一个模块中使用,则只能在其他模块中列出它们。
而且您在providers
部分提供您的服务。
模块还有助于控制您的依赖注入...您可以在组件级别或模块级别使用provide
服务。在Module级别提供服务将创建一个服务实例以在整个模块*享。如果您在组件级别提供服务,那么它是该组件的唯一实例。最好只在一个级别提供服务以避免混淆 - 无论是在模块级别还是在组件级别(在您需要的每个组件中)。我发现在大多数情况下,对我自己来说,仅在模块级别提供服务是最好也是最容易的。与pipes
相同,尽管您制作的任何组件/管道仍必须在declarations
中声明。
app.module.ts的用途是什么?
- 是它启动你的应用程序,并设置链接到你的其他模块。
1 -模块是应用程序的逻辑层。每个模块都在逻辑上打包,因此人们更容易理解和维护由多个模块组成的应用程序。 例如,如果你正在做一个丰富的应用程序,你应该有一个的LoginModule,一个AuthenticationModule,等...
2 -您需要导入模块中的东西,使角知道什么它将会使用。基本上,你的的LoginModule将需要的角度FormModule,这可能不需要为AuthenticationModule
3 -在这里,这导致我们:的AppModule因此应该只导入其他模块,它是链接到并提供将需要的服务全球。您的未来LoginModule将不需要提供的服务,但AuthenticationModule将有一个AuthenticationService很可能会做。
这些都是基本概念,尝试阅读官方文档它提供了很多知识关于这个主题:https://angular.io/guide/ngmodule
读[避免常见的混乱与角模块(https://blog.angularindepth.com/避免 - 常见的混淆与模块在角 - ada070e6891f) –
我有一个YouTube视频,这里解释这个:https://www.youtube.com/watch?v=ntJ-P-Cvo7o – DeborahK
@DeborahK tnx视频。 – masterach