最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Angular4學(xué)習(xí)筆記之根模塊與Ng模塊

 更新時間:2017年09月09日 16:22:43   作者:小鐳Ra  
這篇文章主要介紹了Angular4學(xué)習(xí)筆記之根模塊與Ng模塊,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

根模塊 (root module)

每個應(yīng)用都至少有一個根模塊用來引導(dǎo)并運行應(yīng)用。根模塊通常命名為 AppModule。

示例 src/app/app.module.ts

import { NgModule }   from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';

@NgModule({
 imports:   [ BrowserModule ],
 declarations: [ AppComponent ],
 bootstrap:  [ AppComponent ]
})
export class AppModule { }

imports 數(shù)組

注意:不要在 imports 數(shù)組中加入 NgModule 類型之外的類。

如果有兩個同名指令都叫做 HighlightDirective,我們只要在 import 時使用 as 關(guān)鍵字來為第二個指令創(chuàng)建個別名就可以了。

import {
 HighlightDirective as ContactHighlightDirective
} from './contact/highlight.directive';

關(guān)于 BrowserModule

每個瀏覽器中運行的應(yīng)用都需要 @angular/platform-browser 里的 BrowserModule。 所以每個這樣的應(yīng)用都在其根 AppModule 的 imports 數(shù)組中包含 BrowserModule。

NgIf 是在來自 @angular/common 的 CommonModule 中聲明的。

CommonModule 提供了很多應(yīng)用程序中常用的指令,包括 NgIf 和 NgFor 等。

BrowserModule 導(dǎo)入了 CommonModule 并且重新導(dǎo)出了它。 最終的效果是:只要導(dǎo)入 BrowserModule 就自動獲得了 CommonModule 中的指令。

declarations 數(shù)組

你必須在一個 NgModule 類聲明每一個組件,否則瀏覽器控制臺會報錯。

不要在 declarations 添加組件、指令和管道以外的其他類型。

不要把 NgModel(或 FORMS_DIRECTIVES)加到 AppModule 元數(shù)據(jù)的 declarations 數(shù)據(jù)中!這些指令屬于 FormsModule。
組件、指令和管道只能屬于一個模塊。

永遠(yuǎn)不要再次聲明屬于其它模塊的類。

bootstrap 數(shù)組

通過引導(dǎo)根 AppModule 來啟動應(yīng)用。 在啟動過程中,其中一步是創(chuàng)建列在 bootstrap 數(shù)組的組件, 并將它們每一個都插入到瀏覽器的DOM中。
You launch the application by bootstrapping the root AppModule. Among other things, the bootstrapping process creates the component(s) listed in the bootstrap array and inserts each one into the browser DOM.

每個被引導(dǎo)的組件都是它自己的組件樹的根。 插入一個被引導(dǎo)的組件通常觸發(fā)一系列組件的創(chuàng)建并形成組件樹。
Each bootstrapped component is the base of its own tree of components. Inserting a bootstrapped component usually triggers a cascade of component creations that fill out that tree.

雖然你可以將多個組件樹插入到宿主頁面,但并不普遍。 大多數(shù)應(yīng)用只有一個組件樹,它們引導(dǎo)單一根組件。
While you can put more than one component tree on a host web page, that's not typical. Most applications have only one component tree and they bootstrap a single root component.

根組件通常命名為 AppComponent。

在 main.ts 中引導(dǎo)

引導(dǎo)應(yīng)用的方法很多。 它們?nèi)Q于你想如何編譯應(yīng)用以及應(yīng)用將在哪兒運行。

通過即時 (JIT) 編譯器動態(tài)引導(dǎo)

JIT, just-in-time

使用即時 (JIT) 編譯器動態(tài)編譯應(yīng)用 src/main.ts

// The browser platform with a compiler
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

// The app module
import { AppModule } from './app/app.module';

// Compile and launch the module
platformBrowserDynamic().bootstrapModule(AppModule);

使用預(yù)編譯器 (AOT) 進(jìn)行靜態(tài)引導(dǎo)

AOT, ahead-of-time

靜態(tài)方案可以生成更小、啟動更快的應(yīng)用,建議優(yōu)先使用它,特別是在移動設(shè)備或高延遲網(wǎng)絡(luò)下。

使用靜態(tài)選項,Angular 編譯器作為構(gòu)建流程的一部分提前運行,生成一組類工廠。它們的核心就是 AppModuleNgFactory。

引導(dǎo)預(yù)編譯的 AppModuleNgFactory:

// The browser platform without a compiler
import { platformBrowser } from '@angular/platform-browser';

// The app module factory produced by the static offline compiler
import { AppModuleNgFactory } from './app/app.module.ngfactory';

// Launch with the app module factory.
platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);

說明:由于整個應(yīng)用都是預(yù)編譯的,所以我們不用把 Angular 編譯器一起發(fā)到瀏覽器中,也不用在瀏覽器中進(jìn)行編譯。

無論是 JIT 還是 AOT 編譯器都會從同一份 AppModule 源碼中生成一個 AppModuleNgFactory 類。 JIT 編譯器動態(tài)地在瀏覽器的內(nèi)存中創(chuàng)建這個工廠類。 AOT 編譯器把工廠輸出成一個物理文件,也就是我們在靜態(tài)版本 main.ts 中導(dǎo)入的那個。

通常,AppModule 不必關(guān)心它是如何被引導(dǎo)的。AppModule 會隨著應(yīng)用而演化,但是 main.ts 中的引導(dǎo)代碼不會變。

Ng模塊 (NgModule)

特性模塊

特性模塊是帶有 @NgModule 裝飾器及其元數(shù)據(jù)的類,就像根模塊一樣。 特性模塊的元數(shù)據(jù)和根模塊的元數(shù)據(jù)的屬性是一樣的。

根模塊和特性模塊還共享著相同的執(zhí)行環(huán)境。 它們共享著同一個依賴注入器,這意味著某個模塊中定義的服務(wù)在所有模塊中也都能用。

它們在技術(shù)上有兩個顯著的不同點:

  1. 我們引導(dǎo)根模塊來啟動應(yīng)用,但導(dǎo)入特性模塊來擴展應(yīng)用。
  2. 特性模塊可以對其它模塊暴露或隱藏自己的實現(xiàn)。

特性模塊用來提供了內(nèi)聚的功能集合。 聚焦于應(yīng)用的某個業(yè)務(wù)領(lǐng)域、用戶工作流、某個基礎(chǔ)設(shè)施(表單、HTTP、路由),或一組相關(guān)的工具集合。

雖然這些都能在根模塊中做,但特性模塊可以幫助我們把應(yīng)用切分成具有特定關(guān)注點和目標(biāo)的不同區(qū)域。

當(dāng)前模塊不會繼承其它模塊中對組件、指令或管道的訪問權(quán)。根模塊與特性模塊的 imports 互不相干。如果某一個模塊要綁定到 [(ngModel)] 就必需導(dǎo)入 FormsModule。

總結(jié)

本章整理內(nèi)容較少,主要是詳細(xì)理解 Angular 模塊的概念、功能、關(guān)系。

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

相關(guān)文章

  • 詳解Angular2 關(guān)于*ngFor 嵌套循環(huán)

    詳解Angular2 關(guān)于*ngFor 嵌套循環(huán)

    這篇文章主要介紹了詳解Angular2 關(guān)于*ngFor 嵌套循環(huán),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • AngularJS實現(xiàn)DOM元素的顯示與隱藏功能

    AngularJS實現(xiàn)DOM元素的顯示與隱藏功能

    這篇文章主要介紹了AngularJS實現(xiàn)DOM元素的顯示與隱藏功能,涉及AngularJS中ng-hide與ng-show兩個屬性的使用,需要的朋友可以參考下
    2016-11-11
  • angular.js指令中的controller、compile與link函數(shù)的不同之處

    angular.js指令中的controller、compile與link函數(shù)的不同之處

    最近一位大神問了我angular.js指令中的controller、compile與link函數(shù)的不同,想了想居然回答不出來,所以必須要深入的探究下,下面這篇文章主要介紹了關(guān)于angular.js指令中的controller、compile與link函數(shù)的不同之處,需要的朋友可以參考下。
    2017-05-05
  • AngularJS基于ngInfiniteScroll實現(xiàn)下拉滾動加載的方法

    AngularJS基于ngInfiniteScroll實現(xiàn)下拉滾動加載的方法

    這篇文章主要介紹了AngularJS基于ngInfiniteScroll實現(xiàn)下拉滾動加載的方法,結(jié)合實例形式分析AngularJS下拉滾動插件ngInfiniteScroll的下載、功能、屬性及相關(guān)使用方法,需要的朋友可以參考下
    2016-12-12
  • angularjs創(chuàng)建彈出框?qū)崿F(xiàn)拖動效果

    angularjs創(chuàng)建彈出框?qū)崿F(xiàn)拖動效果

    這篇文章主要為大家詳細(xì)介紹了angularjs創(chuàng)建彈出框?qū)崿F(xiàn)拖動效果的相關(guān)資料,angularjs modal模態(tài)框創(chuàng)建可拖動的指令,感興趣的小伙伴們可以參考一下
    2016-01-01
  • 淺談Angular4實現(xiàn)熱加載開發(fā)旅程

    淺談Angular4實現(xiàn)熱加載開發(fā)旅程

    本篇文章主要介紹了淺談Angular4實現(xiàn)熱加載開發(fā)旅程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Angular4 中內(nèi)置指令的基本用法

    Angular4 中內(nèi)置指令的基本用法

    不得不說指令是ng最為強大的功能之一,好吧,也可以去掉之一,是最強大的功能。下面這篇文章主要給大家介紹了關(guān)于Angular4中內(nèi)置指令的基本用法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面來一起看看吧。
    2017-07-07
  • AngularJS 讓人愛不釋手的八種功能

    AngularJS 讓人愛不釋手的八種功能

    AngularJS 讓人愛不釋手的八種功能,想知道AngularJS哪八種功能讓人喜歡就快點看下本文吧
    2016-03-03
  • Spartacus CMS Feature selector的實現(xiàn)解析

    Spartacus CMS Feature selector的實現(xiàn)解析

    這篇文章主要為大家介紹了Spartacus CMS Feature selector的實現(xiàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Angular4 Select選擇改變事件的方法

    Angular4 Select選擇改變事件的方法

    今天小編就為大家分享一篇Angular4 Select選擇改變事件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評論

同心县| 元江| 广平县| 兴隆县| 成都市| 石嘴山市| 玛多县| 阿图什市| 上蔡县| 蛟河市| 玉田县| 绵阳市| 阳信县| 永年县| 历史| 宜宾县| 惠安县| 安新县| 广饶县| 仪陇县| 泰和县| 南康市| 波密县| 定陶县| 永康市| 济阳县| 茌平县| 罗平县| 泊头市| 崇礼县| 湖州市| 广饶县| 塔河县| 原阳县| 大渡口区| 林西县| 梧州市| 自治县| 纳雍县| 乐昌市| 伊川县|