最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

如何使用entrycomponent

来源:懂视网 责编:小采 时间:2020-11-27 19:39:11
文档

如何使用entrycomponent

如何使用entrycomponent:这次给大家带来如何使用entry component,使用entry component的注意事项有哪些,下面就是实战案例,一起来看一下。前言组件是Angular中很重要的一部分,下面这篇文章就来给大家介绍关于Angular入口组件(entry component)与声明式组件的区别,
推荐度:
导读如何使用entrycomponent:这次给大家带来如何使用entry component,使用entry component的注意事项有哪些,下面就是实战案例,一起来看一下。前言组件是Angular中很重要的一部分,下面这篇文章就来给大家介绍关于Angular入口组件(entry component)与声明式组件的区别,

这次给大家带来如何使用entry component,使用entry component的注意事项有哪些,下面就是实战案例,一起来看一下。

前言

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

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

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

    声明式组件

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

    示例

    @Component({
     selector: 'a-cmp',
     template: `
     <p>这是A组件</p>
     `
    })
    export class AComponent {}
    @Component({
     selector: 'b-cmp',
     template: `
     <p>在B组件里内嵌A组件:</p>
     <a-cmp></a-cmp>
     `
    })
    export class BComponent {}

    在BComponent的模板里,使用selector<a-cmp></a-cmp>声明加载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<app-root></app-root>的位置,但是Angular并不是根据此selector来加载AppComponent。这是容易让人误解的地方。因为index.html不属于任何组件模板,Angular需要通过编程使用bootstrap里声明的AppComponent类型加载组件,而不是使用selector。

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

    路由配置引用的组件

    @Component({
     selector: 'app-nav',
     template: `
     <nav>
     <a routerLink="/home" routerLinkActive #rla="routerLinkActive" selected="#rla.isActive">首页</a>
     <a routerLink="/users" routerLinkActive #rla="routerLinkActive" selected="#rla.isActive">用户</a>
     </nav>
     <router-outlet></router-outlet>
     `
    })
    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 { }

    相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

    推荐阅读:

    node+token做出用户验证

    如何操作Angular项目内使用scss

    声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

    如何使用entrycomponent

    如何使用entrycomponent:这次给大家带来如何使用entry component,使用entry component的注意事项有哪些,下面就是实战案例,一起来看一下。前言组件是Angular中很重要的一部分,下面这篇文章就来给大家介绍关于Angular入口组件(entry component)与声明式组件的区别,
    推荐度:
    标签: 使用 entry component
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top