app.module.ts 文件有什么用,我应该在里面做什么?
What does the app.module.ts file serve for, what should I do inside of it?
我正在习惯 Angular 2,但我有几个关于 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
在组件级别或模块级别提供服务。在模块级别提供服务会创建一个服务实例以在整个模块中共享。如果您在组件级别提供服务,那么它是该组件的唯一实例。最好只在一个级别提供服务以避免混淆 - 无论是在模块级别还是在组件级别(在您需要它的每个组件中)。我发现大多数时候,对我自己来说,只在模块级别提供服务是最好和最简单的。与 pipes
等相同,尽管您创建的任何 component/pipe 仍必须在 declarations
.
中声明
app.module.ts的目的是什么?
- 启动您的应用程序,并设置指向您的其他模块的链接。
1 - 模块是应用程序的逻辑层。每个模块都在那里进行逻辑打包,以便人们更容易理解和维护由多个模块组成的应用程序。
例如,如果你正在做一个丰富的应用程序,你应该有一个 LoginModule,一个 AuthenticationModule,等等...
2 - 您需要在您的模块中导入一些东西,以便 Angular 知道它将使用什么。基本上,您的 LoginModule 将需要 Angular FormModule,而 AuthenticationModule[=39] 可能不需要=]
3 - 这将我们带到这里:AppModule 因此应该只导入它链接到的其他模块,并提供服务全球将需要它。您未来的 LoginModule 不需要提供服务,但 AuthenticationModule 将有一个 AuthenticationService[=39] =] 很可能会。
这些是基本概念,请尝试阅读官方文档,其中提供了很多关于该主题的知识:https://angular.io/guide/ngmodule
我正在习惯 Angular 2,但我有几个关于 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
在组件级别或模块级别提供服务。在模块级别提供服务会创建一个服务实例以在整个模块中共享。如果您在组件级别提供服务,那么它是该组件的唯一实例。最好只在一个级别提供服务以避免混淆 - 无论是在模块级别还是在组件级别(在您需要它的每个组件中)。我发现大多数时候,对我自己来说,只在模块级别提供服务是最好和最简单的。与 pipes
等相同,尽管您创建的任何 component/pipe 仍必须在 declarations
.
app.module.ts的目的是什么?
- 启动您的应用程序,并设置指向您的其他模块的链接。
1 - 模块是应用程序的逻辑层。每个模块都在那里进行逻辑打包,以便人们更容易理解和维护由多个模块组成的应用程序。 例如,如果你正在做一个丰富的应用程序,你应该有一个 LoginModule,一个 AuthenticationModule,等等...
2 - 您需要在您的模块中导入一些东西,以便 Angular 知道它将使用什么。基本上,您的 LoginModule 将需要 Angular FormModule,而 AuthenticationModule[=39] 可能不需要=]
3 - 这将我们带到这里:AppModule 因此应该只导入它链接到的其他模块,并提供服务全球将需要它。您未来的 LoginModule 不需要提供服务,但 AuthenticationModule 将有一个 AuthenticationService[=39] =] 很可能会。
这些是基本概念,请尝试阅读官方文档,其中提供了很多关于该主题的知识:https://angular.io/guide/ngmodule