类型化和非类型化延迟加载模块之间的区别

时间:2019-02-19 18:08:54

标签: angular lazy-loading angular-router

我想问一下这两种形式的Angular懒加载模块之间的区别是什么

    {
        path:'',
        loadChildren: './mymodule.module#MyModule'
    }

并且:

    {
        path:'',
        loadChildren: () => MyModuleModule
    }

我不知道这是做同一件事的两种方式,还是在性能或行为上有所区别。

谢谢!

1 个答案:

答案 0 :(得分:0)

此语法:

{
    path:'',
    loadChildren: () => MyModuleModule
}

不是会导致模块延迟加载。它直接引用MyModuleModule,因此当Angular CLI捆绑软件包时,它将捆绑MyModuleModule与该代码所在的模块。

如果需要在路径层次结构中的特定位置专门加载功能模块的子路径,请使用此语法。

但是请注意:我曾经在我在会议上进行的“角路由”演讲之一中对此进行了介绍。 Angular小组的一位成员建议我 stop 进行介绍,因为在大多数情况下,应该使用惰性加载的语法代替。

此语法:

{
    path:'',
    loadChildren: './mymodule.module#MyModule'
}

确实会导致模块延迟加载。模块名称是在字符串中定义的,因此它没有直接引用,也没有与其定义的模块捆绑在一起。