千家信息网

Angular入口组件与声明式组件的区别有哪些

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下Angular入口组件与声明式组件的区别有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言组件是A
千家信息网最后更新 2026年11月01日Angular入口组件与声明式组件的区别有哪些

小编给大家分享一下Angular入口组件与声明式组件的区别有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

前言

组件是Angular中很重要的一部分,下面这篇文章就来给大家介绍关于Angular入口组件(entry component)与声明式组件的区别,Angular的声明式组件和入口组件的区别体现在两者的加载方式不同。

  • 声明式组件是通过组件声明的selector加载

入口组件(entry component)是通过组件的类型动态加载

声明式组件

声明式组件会在模板里通过组件声明的selector加载组件。

示例

@Component({ selector: 'a-cmp', template: ` 

这是A组件

`})export class AComponent {}
@Component({ selector: 'b-cmp', template: ` 

在B组件里内嵌A组件:

`})export class BComponent {}

在BComponent的模板里,使用selector声明加载AComponent。

入口组件(entry component)

入口组件是通过指定的组件类加载组件。

主要分为三类:

  • 在@NgModule.bootstrap里声明的启动组件,如AppComponent。

  • 在路由配置里引用的组件

  • 其他通过编程使用组件类型加载的动态组件

启动组件

app.component.ts

@Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss']})export class AppComponent{}

app.module.ts

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

在bootstrap里声明的AppComponent为启动组件。虽然我们会在index.html里使用组件的selector的位置,但是Angular并不是根据此selector来加载AppComponent。这是容易让人误解的地方。因为index.html不属于任何组件模板,Angular需要通过编程使用bootstrap里声明的AppComponent类型加载组件,而不是使用selector。

由于Angular动态加载AppComponent,所有AppComponent是一个入口组件。

路由配置引用的组件

@Component({ selector: 'app-nav', template: `   `})export class NavComponent {}

我们需要配置一个路由

const routes: Routes = [ { path: "home", component: HomeComponent }, { path: "user", component: UserComponent }];@NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule]})export class AppRoutingModule { }

Angular根据配置的路由,根据路由指定的组件类来加载组件,而不是通过组件的selector加载。

配置入口组件

在Angular里,对于入库组件需要在@NgModule.entryComponents里配置。

由于启动组件和路由配置里引用的组件都为入口组件,Angular会在编译时自动把这两种组件添加到@NgModule.entryComponents里。对于我们自己编写的动态组件需要手动添加到@NgModule.entryComponents里。

@NgModule({ declarations: [  AppComponent ], imports: [  BrowserModule,  BrowserAnimationsModule,  AppRoutingModule ], providers: [], entryComponents:[DialogComponent], declarations:[] bootstrap: [AppComponent] }) export class AppModule { }

以上是"Angular入口组件与声明式组件的区别有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

组件 入口 配置 路由 动态 篇文章 模板 类型 内容 这是 编程 不同 重要 不怎么 位置 前言 地方 大部分 手动 方式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中关村互联网科技集团 工业互联网科技新基建 互联网科技公司发展 互联网未来科技 狮子座互联网科技有限公司 科技类的互联网平台 衡水科技产业互联网平台 江苏南京365互联网科技 宁夏科技产业互联网案例 互联网对科技的发展 科技互联网大厂 花神(南京)互联网科技有限公司 银川新华互联网科技学校联系电话 卓翼科技产业互联网合作 工业互联网山东科技大学 众安科技工业互联网合作 城市宝互联网科技有限公司 富国互联网科技002692 科技互联网专业工作会议发言稿 宁波允成互联网科技有限公司 广东猪兼强互联网科技有限公司 互联网中国科技 科技制造互联网公司 无线互联网科技 恒生科技互联网指数分析 互联网公司会议桌创意科技软装饰 智帮互联网科技公司最近动向 互联网科技融合创新 深圳互联网科技园地址 北京瑞云互联网科技有限公司
0