gpt4 book ai didi

angular - 一个 NgModule 与 Angular 2 的多个 NgModule

转载 作者:太空狗 更新时间:2023-10-29 17:42:19 30 4
gpt4 key购买 nike

我想知道是创建一个包含我所有 Angular 2 代码的单个模块更好,还是将所有内容拆分到多个模块更好。例如,我正在使用 Angular 2 创建我的博客。所以我有一个“文章列表”组件和一个“文章”组件。 “文章列表”调用返回文章列表的服务,然后对其执行“ngFor”并为每篇文章插入一篇“文章”。

“文章”组件包含一个“标签列表”组件(遵循与“文章列表”相同的模式,因此我也有一个“标签”组件)。现在,一切都在一个模块中,并且工作得很好,但是 here ,我可以看到他们为“英雄”相关的东西创建了一个模块,但我只是想知道是否真的有必要。

实际上,我并不完全知道创建模块而不是将所有内容都放在主模块中的成本,所以我很难知道我是否应该继续使用一个模块或创建一个“文章”模块和一个“标签”一个。

最佳答案

是的,您可以将您的应用程序拆分为多个模块。这将减少应用程序中模块之间的耦合。如果您正在构建大型应用程序,将应用程序划分为功能单元或模块很重要。

例如,你的主模块名称是'app.module'

该应用程序由“页眉”、“主页”、...、“页脚”部分组成。

在页眉部分,您可以创建多个组件。例如。链接(路线)和搜索部分,将其添加到模块标题中。类似地,Home、Footer 和其他部分包含相关模块。

例如,Home 部分是一个很大的部分,包含许多功能,那么我们可以创建多个模块并注入(inject)到 home 主模块中,比如“home.module”。

下面的代码只是一个示例,展示了如何在 Angular 2 中实现多个模块。

app.module.ts

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';


import { AppComponent } from './app.component';
import { HeaderModule } from './header.module';

@NgModule({
imports: [
BrowserModule,
HeaderModule
],
declarations: [
AppComponent,
],
bootstrap: [ AppComponent ]
})

export class AppModule { }

header.module.ts

import { NgModule }      from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';

import {
InputTextModule,
ButtonModule,
DataTableModule,
SharedModule
} from 'primeng/primeng';

import { HeaderComponent } from './header.component';
import { UploadFileComponent } from './upload-file.component';


@NgModule({
imports: [
CommonModule,
FormsModule,
HttpModule,
InputTextModule,
ButtonModule,
DataTableModule,
SharedModule
],
declarations: [
HeaderComponent,
UploadFileComponent
],
exports: [
HeaderComponent
]
})

export class HeaderModule { }

Just refer angular2 ngmodule documentation

关于angular - 一个 NgModule 与 Angular 2 的多个 NgModule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39756178/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com