日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Angular2学习笔记——NgModule

發布時間:2025/4/5 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Angular2学习笔记——NgModule 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  在Angular2中一個Module指的是使用@NgModule修飾的class。@NgModule利用一個元數據對象來告訴Angular如何去編譯和運行代碼。一個模塊內部可以包含組件、指令、管道,并且可以將它們的訪問權限聲明為公有,以使外部模塊的組件可以訪問和使用到它們。

  模塊是用來組織應用的,通過模塊機制外部類庫可以很方便的擴展應用,Rc5之后,Angular2將許多常用功能都分配到一個個的模塊中,如:FormModule、HttpModule、RouterModule。

  NgModule的主要屬性如下:

  • declarations:模塊內部Components/Directives/Pipes的列表,聲明一下這個模塊內部成員
  • providers:指定應用程序的根級別需要使用的service。(Angular2中沒有模塊級別的service,所有在NgModule中聲明的Provider都是注冊在根級別的Dependency Injector中)
  • imports:導入其他module,其它module暴露的出的Components、Directives、Pipes等可以在本module的組件中被使用。比如導入CommonModule后就可以使用NgIf、NgFor等指令。
  • exports:用來控制將哪些內部成員暴露給外部使用。導入一個module并不意味著會自動導入這個module內部導入的module所暴露出的公共成員。除非導入的這個module把它內部導入的module寫到exports中。
  • bootstrap:通常是app啟動的根組件,一般只有一個component。bootstrap中的組件會自動被放入到entryComponents中。
  • entryCompoenents: 不會再模板中被引用到的組件。這個屬性一般情況下只有ng自己使用,一般是bootstrap組件或者路由組件,ng會自動把bootstrap、路由組件放入其中。?除非不通過路由動態將component加入到dom中,否則不會用到這個屬性。

  每個Angular2的應用都至少有一個模塊即跟模塊。

import {NgModule} from '@angular/core'; import {BrowserModule} from '@angular/platform-borwser'; import {AppComponent} from './AppComponent';@NgModule({declarations: [AppComponent],imports: [BrowserModule],bootstrap: [AppComponent] }) export class AppModule{}

?

  隨著程序的壯大,單一的根模塊已不能清晰的劃分職責,這時候便可以引入Feature Module。Feature Module與根模塊的創建方式一樣,所有的模塊共享一個運行期上下文和依賴注入器。

  功能模塊與根模塊的職責區別主要有以下兩點:

  • 根模塊的目的在于啟動app,功能模塊的目的在于擴展app
  • 功能模塊可以根據需要暴露或隱藏具體的實現

?

  Angular2提供的另一個與模塊有關的技術就是延遲加載了。默認情況下Angular2將所有的代碼打包成一個文件,目的是為了提高應用的流暢性,但是如果是運行在mobile中的app,加載一個大文件可能會過慢,所以rc5提供了一種延遲加載方式。

template: `<app-title [subtitle]="subtitle"></app-title><nav><a routerLink="contact" routerLinkActive="active">Contact</a><a routerLink="crisis" routerLinkActive="active">Crisis Center</a><a routerLink="heroes" routerLinkActive="active">Heroes</a></nav><router-outlet></router-outlet> `

?

import { ModuleWithProviders } from '@angular/core'; import { Routes, RouterModule } from '@angular/router';export const routes: Routes = [{ path: '', redirectTo: 'contact', pathMatch: 'full'},{ path: 'crisis', loadChildren: 'app/crisis/crisis.module#CrisisModule' },{ path: 'heroes', loadChildren: 'app/hero/hero.module#HeroModule' } ];export const routing: ModuleWithProviders = RouterModule.forRoot(routes);

  其中,path指明路徑,loadChildren指明使用延遲加載,'app/crisis/crisis.module#CrisisModule'指明了模塊的路徑,和模塊的名稱。

  

總結

以上是生活随笔為你收集整理的Angular2学习笔记——NgModule的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。