欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Angular2學(xué)習(xí)筆記——詳解NgModule模塊

 更新時(shí)間:2016年12月02日 17:15:38   作者:木的樹  
這篇文章主要介紹了Angular2學(xué)習(xí)筆記——詳解NgModule模塊,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

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

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

NgModule的主要屬性如下:

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

每個(gè)Angular2的應(yīng)用都至少有一個(gè)模塊即跟模塊。

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{}

隨著程序的壯大,單一的根模塊已不能清晰的劃分職責(zé),這時(shí)候便可以引入Feature Module。Feature Module與根模塊的創(chuàng)建方式一樣,所有的模塊共享一個(gè)運(yùn)行期上下文和依賴注入器。

功能模塊與根模塊的職責(zé)區(qū)別主要有以下兩點(diǎn):

  • 根模塊的目的在于啟動app,功能模塊的目的在于擴(kuò)展app
  • 功能模塊可以根據(jù)需要暴露或隱藏具體的實(shí)現(xiàn)

Angular2提供的另一個(gè)與模塊有關(guān)的技術(shù)就是延遲加載了。默認(rèn)情況下Angular2將所有的代碼打包成一個(gè)文件,目的是為了提高應(yīng)用的流暢性,但是如果是運(yùn)行在mobile中的app,加載一個(gè)大文件可能會過慢,所以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'指明了模塊的路徑,和模塊的名稱。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入理解Angular.JS中的Scope繼承

    深入理解Angular.JS中的Scope繼承

    這篇文章主要給大家深入的介紹了關(guān)于Angular.JS中Scope繼承的相關(guān)資料,Angular。JS中scope之間的繼承關(guān)系使用JavaScript的原型繼承方式實(shí)現(xiàn),文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • AngularJS表格添加序號的方法

    AngularJS表格添加序號的方法

    這篇文章主要介紹了AngularJS表格添加序號的方法,涉及AngularJS表格的遍歷及序號添加實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-03-03
  • 解決angular2 獲取到的數(shù)據(jù)無法實(shí)時(shí)更新的問題

    解決angular2 獲取到的數(shù)據(jù)無法實(shí)時(shí)更新的問題

    今天小編就為大家分享一篇解決angular2 獲取到的數(shù)據(jù)無法實(shí)時(shí)更新的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 詳談Angular路由與Nodejs路由的區(qū)別

    詳談Angular路由與Nodejs路由的區(qū)別

    下面小編就為大家?guī)硪黄斦凙ngular路由與Nodejs路由的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Angular通過?HTTP?Interceptor?實(shí)現(xiàn)?HTTP?請求超時(shí)監(jiān)控的例子

    Angular通過?HTTP?Interceptor?實(shí)現(xiàn)?HTTP?請求超時(shí)監(jiān)控的例子

    這篇文章主要介紹了Angular?如何通過?HTTP?Interceptor?實(shí)現(xiàn)?HTTP?請求的超時(shí)監(jiān)控,本文通過例子給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • Angular本地存儲安全分析詳解

    Angular本地存儲安全分析詳解

    這篇文章主要為大家介紹了Angular本地存儲安全分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • angularjs下拉框空白的解決辦法

    angularjs下拉框空白的解決辦法

    這篇文章主要為大家詳細(xì)介紹了angularjs下拉框空白的解決方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • AngularJS在IE下取數(shù)據(jù)總是緩存問題的解決方法

    AngularJS在IE下取數(shù)據(jù)總是緩存問題的解決方法

    這篇文章主要介紹了AngularJS在IE下取數(shù)據(jù)總是緩存問題的解決方法,分析了問題的原因及AngularJS設(shè)置禁止IE對ajax緩存的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2016-08-08
  • AngularJS輔助庫browserTrigger用法示例

    AngularJS輔助庫browserTrigger用法示例

    這篇文章主要介紹了AngularJS輔助庫browserTrigger用法,結(jié)合實(shí)例形式分析了輔助庫browserTrigger的功能及單元測試中的使用技巧,需要的朋友可以參考下
    2016-11-11
  • Angularjs根據(jù)json文件動態(tài)生成路由狀態(tài)的實(shí)現(xiàn)方法

    Angularjs根據(jù)json文件動態(tài)生成路由狀態(tài)的實(shí)現(xiàn)方法

    最近做項(xiàng)目遇到這樣一個(gè)新需求,就是需要根據(jù)json文件動態(tài)生成路由狀態(tài),通過查閱相關(guān)資料實(shí)現(xiàn)了此功能,下面小編把問題總結(jié)分享到腳本之家平臺供大家參考
    2017-04-04

最新評論