摘要:中的是什么教程一安裝和配置我正在研究依賴于的應(yīng)用程序。入口組件是根據(jù)類型強制加載的任何組件。然后創(chuàng)建組件的表示并將其插入選定元素的中。確實,它的選擇符匹配中的元素標(biāo)記。路由定義中的組件也是條目組件。路徑定義是指按其類型的組件。
ngModule中的entryComponents是什么?
ionic3 教程(一)安裝和配置
我正在研究依賴于2的Ionic3應(yīng)用程序。 所以納入了新的ngModules介紹。 我正在添加我的app.module.ts。 下面
import { NgModule } from "@angular/core"; import { IonicApp, IonicModule } from "ionic-angular"; import { MyApp } from "./app.component"; import { Users } from "../pages/users/users"; @NgModule({ declarations: [ MyApp, Users ], imports: [ IonicModule.forRoot(MyApp) ], bootstrap: [IonicApp], entryComponents: [ MyApp, Users ] }) export class AppModule {}entryComponents在這里做什么?
entryComponents在這里做什么? 組件已經(jīng)在聲明中定義。 那么有什么需要重復(fù)呢? 如果我不在這里包含組件,會發(fā)生什么?
回答:
Angular使用entryComponents來啟用“樹震動”,即只編譯項目中實際使用的組件,而不是編譯所有在ngModule中聲明但從未使用的組件
這是用ViewContainerRef.createComponent()添加的動態(tài)添加的組件。將它們添加到entryComponents告訴脫機模板編譯器編譯它們并為它們創(chuàng)建工廠。
路由配置中注冊的組件也自動添加到entryComponents,因為router-outlet也使用ViewContainerRef.createComponent()將路由組件添加到DOM。
離線模板編譯器(OTC)只生成實際使用的組件。如果組件不直接用于模板,OTC不知道是否需要編譯。有了entryComponents,你可以告訴OTC也編譯這些組件,以便在運行時可用。
什么是入口組件? (angular.io)NgModule文檔(angular.io)
定義這個組件時定義應(yīng)該被編譯的組件。對于此處列出的每個組件,Angular將創(chuàng)建一個ComponentFactory并將其存儲在ComponentFactoryResolver中。
如果你沒有給entryComponents列出一個動態(tài)添加的組件,你會得到一個錯誤消息,因為Angular沒有創(chuàng)建一個。
另見https://angular.io/docs/ts/la...
你不會比Angular文檔得到更好的解釋。
以下是角度文檔的解釋。
入口組件是根據(jù)類型強制加載的任何組件。
通過它的選擇器聲明式加載的組件不是一個入口組件。
大多數(shù)應(yīng)用程序組件是聲明式加載的。 Angular使用組件的選擇器來定位模板中的元素。然后創(chuàng)建組件的HTML表示并將其插入選定元素的DOM中。這些不是條目組件。
一些組件只能動態(tài)加載,并不會在組件模板中引用。
引導(dǎo)的根AppComponent是一個入口組件。確實,它的選擇符匹配index.html中的元素標(biāo)記。但是index.html不是組件模板,AppComponent選擇器不匹配任何組件模板中的元素。
動態(tài)加載AppComponent,因為它是按照@ NgModule.bootstrap中的類型列出的,或者是通過模塊的ngDoBootstrap方法強制性地加載。
路由定義中的組件也是條目組件。路徑定義是指按其類型的組件。路由器忽略路由組件的選擇器(如果它有一個),并動態(tài)地將組件加載到RouterOutlet中。
編譯器無法通過在其他組件模板中查找這些條目組件來發(fā)現(xiàn)這些條目組件。您必須通過將它們添加到entryComponents列表來告訴它們。
Angular會自動將以下類型的組件添加到模塊的entryComponents中:
@ NgModule.bootstrap列表中的組件。
路由器配置中引用的組件。
您不必明確提及這些組件,雖然這樣做是無害的。
傳送門:myBlog entryComponents
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/90015.html
摘要:模塊在中一個指的是使用修飾的。中沒有模塊級別的,所有在中聲明的都是注冊在根級別的中導(dǎo)入其他,其它暴露的出的等可以在本的組件中被使用。導(dǎo)入一個并不意味著會自動導(dǎo)入這個內(nèi)部導(dǎo)入的所暴露出的公共成員。 angular2 NgModel 模塊 在Angular2中一個Module指的是使用@NgModule修飾的class。@NgModule利用一個元數(shù)據(jù)對象來告訴Angular如何去編譯和...
摘要:注入器樹大多數(shù)開發(fā)者知道,會創(chuàng)建根注入器,根注入器內(nèi)的服務(wù)都是單例的。也會被添加到這個根注入器對象內(nèi),它主要用來創(chuàng)建動態(tài)組件,因為它存儲了屬性指向的組件數(shù)組。為了理解依賴解析算法,我們首先需要知道視圖和父視圖元素概念。 What you always wanted to know about Angular Dependency Injection tree showImg(https...
摘要:第一種方式是使用模塊加載器,如果你使用加載器的話,路由在加載子路由模塊時也是用的作為模塊加載器。還需注意的是,想要使用還需像這樣去注冊它你當(dāng)然可以在里使用任何標(biāo)識,不過路由模塊使用標(biāo)識,所以最好也使用相同。 原文鏈接:Here is what you need to know about dynamic components in?Angular showImg(https://se...
摘要:大多數(shù)初學(xué)者會認為也有封裝規(guī)則,但實際上沒有。第二個規(guī)則是最后導(dǎo)入模塊的,會覆蓋前面導(dǎo)入模塊的。 原文鏈接:Avoiding common confusions with modules in Angular showImg(https://segmentfault.com/img/remote/1460000015298243?w=270&h=360); Angular Modul...
閱讀 1045·2021-11-15 18:11
閱讀 3170·2021-09-22 15:33
閱讀 3465·2021-09-01 11:42
閱讀 2660·2021-08-24 10:03
閱讀 3625·2021-07-29 13:50
閱讀 2930·2019-08-30 14:08
閱讀 1279·2019-08-28 17:56
閱讀 2263·2019-08-26 13:57