NGMODULES是角度,结构应用和简化汇编的基础。 它们对于功能组织,懒惰的加载路线和建筑可重复使用的库至关重要。本指南假定基本的角度知识。
密钥概念:
AppModule
语句作为JavaScript模块处理。 本文使用全名来保持清晰度。>
- 基础:import
>
export
>每个角应用都以import
开头。 它是根模块,引导应用程序。 一个基本示例:export
装饰器为编译器提供元数据。 AppModule
阵列指定root component()。
> ngmodule属性:AppModule
<code class="language-typescript">import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; @NgModule({ declarations: [AppComponent], imports: [BrowserModule], providers: [], bootstrap: [AppComponent] }) export class AppModule { }</code>
装饰器接受多个属性:@NgModule
declarations
:imports
列表外部模块此模块取决于>。。
exports
列表组件,指令和管道可用可用于导入此一个的模块。providers
>
entryComponents
bootstrap
schemas
)。
NO_ERRORS_SCHEMA
id
>
1。功能ngmodules:
特征模块封装了相关的组件和服务。 示例:
此模块导出
<code class="language-typescript">import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; @NgModule({ declarations: [AppComponent], imports: [BrowserModule], providers: [], bootstrap: [AppComponent] }) export class AppModule { }</code>,使其可用于其他模块。 此处声明的提供商范围范围为该模块。
(包含核心指令)替换ForumsComponent
(仅在root模块中使用)。CommonModule
BrowserModule
使用
>:ForumsModule
AppModule
使用Angular CLI生成特征模块:
<code class="language-typescript">@NgModule({ declarations: [ForumComponent, ForumsComponent, ThreadComponent, ThreadsComponent], imports: [CommonModule, FormsModule], exports: [ForumsComponent], // Exposing ForumsComponent for use in other modules providers: [ForumsService] }) export class ForumsModule { }</code>
2。懒惰加载路线:ng generate module path/to/module/feature
note
。 在>的路由配置:
<code class="language-typescript">@NgModule({ declarations: [AppComponent], imports: [BrowserModule, ForumsModule], providers: [], bootstrap: [AppComponent] }) export class AppModule { }</code>
RouterModule.forChild()
属性使用动态导入模块的函数。 这样可以确保仅当访问AppModule
路由时才加载。 懒惰模块中的提供商是
<code class="language-typescript">@NgModule({ declarations: [ForumComponent, ForumsComponent], imports: [CommonModule, FormsModule, RouterModule.forChild([ { path: '', component: ForumsComponent }, { path: ':forum_id', component: ForumComponent } ])], providers: [ForumsService] }) export class ForumsModule { }</code>全球访问。
>
loadChildren
/forums
3。路由模块:
>
4。 Singleton Services: ng generate module path/to/module/feature --routing
和方法:
在其他模块中使用forRoot()
和forChild()
进行导入。
<code class="language-typescript">const routes: Routes = [ { path: 'forums', loadChildren: () => import('./forums/forums.module').then(m => m.ForumsModule) // Updated import syntax }, // ...other routes ];</code>
5。分组ngmodules:ForumsModule.forRoot()
AppModule
NGMODULES可以将其他NGMODULE分组,以更容易导入,但这可能会影响震撼。
NGMODULES对于角度应用体系结构至关重要。 了解它们的属性和使用模式是构建可维护,性能和可扩展应用程序的关键。 有关更深入的信息,请参阅官方的角文档。
以上是使用Angular NGMODULE进行可重复使用的代码等等的详细内容。更多信息请关注PHP中文网其他相关文章!